1. 06 Jan, 2009 8 commits
    • Linus Torvalds's avatar
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2 · 10cc04f5
      Linus Torvalds authored
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: (138 commits)
        ocfs2: Access the right buffer_head in ocfs2_merge_rec_left.
        ocfs2: use min_t in ocfs2_quota_read()
        ocfs2: remove unneeded lvb casts
        ocfs2: Add xattr support checking in init_security
        ocfs2: alloc xattr bucket in ocfs2_xattr_set_handle
        ocfs2: calculate and reserve credits for xattr value in mknod
        ocfs2/xattr: fix credits calculation during index create
        ocfs2/xattr: Always updating ctime during xattr set.
        ocfs2/xattr: Remove extend_trans call and add its credits from the beginning
        ocfs2/dlm: Fix race during lockres mastery
        ocfs2/dlm: Fix race in adding/removing lockres' to/from the tracking list
        ocfs2/dlm: Hold off sending lockres drop ref message while lockres is migrating
        ocfs2/dlm: Clean up errors in dlm_proxy_ast_handler()
        ocfs2/dlm: Fix a race between migrate request and exit domain
        ocfs2: One more hamming code optimization.
        ocfs2: Another hamming code optimization.
        ocfs2: Don't hand-code xor in ocfs2_hamming_encode().
        ocfs2: Enable metadata checksums.
        ocfs2: Validate superblock with checksum and ecc.
        ocfs2: Checksum and ECC for directory blocks.
        ...
      10cc04f5
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · 520c8534
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
        inotify: fix type errors in interfaces
        fix breakage in reiserfs_new_inode()
        fix the treatment of jfs special inodes
        vfs: remove duplicate code in get_fs_type()
        add a vfs_fsync helper
        sys_execve and sys_uselib do not call into fsnotify
        zero i_uid/i_gid on inode allocation
        inode->i_op is never NULL
        ntfs: don't NULL i_op
        isofs check for NULL ->i_op in root directory is dead code
        affs: do not zero ->i_op
        kill suid bit only for regular files
        vfs: lseek(fd, 0, SEEK_CUR) race condition
      520c8534
    • Nick Piggin's avatar
      mm lockless pagecache barrier fix · e8c82c2e
      Nick Piggin authored
      An XFS workload showed up a bug in the lockless pagecache patch. Basically it
      would go into an "infinite" loop, although it would sometimes be able to break
      out of the loop! The reason is a missing compiler barrier in the "increment
      reference count unless it was zero" case of the lockless pagecache protocol in
      the gang lookup functions.
      
      This would cause the compiler to use a cached value of struct page pointer to
      retry the operation with, rather than reload it. So the page might have been
      removed from pagecache and freed (refcount==0) but the lookup would not correctly
      notice the page is no longer in pagecache, and keep attempting to increment the
      refcount and failing, until the page gets reallocated for something else. This
      isn't a data corruption because the condition will be detected if the page has
      been reallocated. However it can result in a lockup.
      
      Linus points out that ACCESS_ONCE is also required in that pointer load, even
      if it's absence is not causing a bug on our particular build. The most general
      way to solve this is just to put an rcu_dereference in radix_tree_deref_slot.
      
      Assembly of find_get_pages,
      before:
      .L220:
              movq    (%rbx), %rax    #* ivtmp.1162, tmp82
              movq    (%rax), %rdi    #, prephitmp.1149
      .L218:
              testb   $1, %dil        #, prephitmp.1149
              jne     .L217   #,
              testq   %rdi, %rdi      # prephitmp.1149
              je      .L203   #,
              cmpq    $-1, %rdi       #, prephitmp.1149
              je      .L217   #,
              movl    8(%rdi), %esi   # <variable>._count.counter, c
              testl   %esi, %esi      # c
              je      .L218   #,
      
      after:
      .L212:
              movq    (%rbx), %rax    #* ivtmp.1109, tmp81
              movq    (%rax), %rdi    #, ret
              testb   $1, %dil        #, ret
              jne     .L211   #,
              testq   %rdi, %rdi      # ret
              je      .L197   #,
              cmpq    $-1, %rdi       #, ret
              je      .L211   #,
              movl    8(%rdi), %esi   # <variable>._count.counter, c
              testl   %esi, %esi      # c
              je      .L212   #,
      
      (notice the obvious infinite loop in the first example, if page->count remains 0)
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Reviewed-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e8c82c2e
    • Alan Cox's avatar
      i2o: Update my address · f1b11e50
      Alan Cox authored
      Signed-off-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f1b11e50
    • Alan Cox's avatar
      mm: update my address · 046c6884
      Alan Cox authored
      Signed-off-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      046c6884
    • Al Viro's avatar
      5641f1fd
    • Al Viro's avatar
      uml got broken by commit 30742d5c · 7483cb7b
      Al Viro authored
      ... if you revert a commit, revert the fixups elsewhere that had been
      triggered by it.  Such as 8c56250f
      (lockdep, UML: fix compilation when CONFIG_TRACE_IRQFLAGS_SUPPORT is not set).
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7483cb7b
    • Al Viro's avatar
      get rid of the last symlink in uml build · 22409f9c
      Al Viro authored
      We need to make asm-offsets.h contents visible for objects built
      with userland headers.  Instead of creating a symlink, just have the
      file with equivalent include (relative to location of header) created
      once.  That kills the last symlink used in arch/um builds.
      
      Additionally, both generated headers can become dependencies of
      archprepare now, killing the misuse of prepare.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      22409f9c
  2. 05 Jan, 2009 32 commits