1. 19 12月, 2009 1 次提交
    • T
      ocfs2: Add reflinked file's inode to inode hash eariler. · c7d260af
      Tao Ma 提交于
      We used to add reflinked file's inode to inode hash when
      we add it to the dest dir. But actually there is a race.
      Consider the following sequence.
      1. reflink happens and create the inode in orphan dir.
      2. reflink thread is scheduled out because of some io.
      3. recovery begins to work and calls ocfs2_recover_orphans.
         It calls ocfs2_iget and get a new inode and i_count = 1.
         It calls iput then and delete inode. the buffer's
         uptodate state is cleared.
      
      This patch move insert_inode_hash to the create function so
      that it can be found by step 3 and prevented from deleting
      because i_count > 1.
      
      This resolves the bug
      http://oss.oracle.com/bugzilla/show_bug.cgi?id=1183.
      Signed-off-by: NTao Ma <tao.ma@oracle.com>
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      c7d260af
  2. 03 12月, 2009 14 次提交
  3. 02 12月, 2009 22 次提交
  4. 01 12月, 2009 3 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha-2.6 · df87f8c0
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha-2.6:
        alpha: Fixup last users of irq_chip->typename
        Alpha: Rearrange thread info flags fixing two regressions
        arch/alpha/kernel: Add kmalloc NULL tests
        arch/alpha/kernel/sys_ruffian.c: Use DIV_ROUND_CLOSEST
      df87f8c0
    • M
      CacheFiles: Update IMA counters when using dentry_open · 3350b2ac
      Marc Dionne 提交于
      When IMA is active, using dentry_open without updating the
      IMA counters will result in free/open imbalance errors when
      fput is eventually called.
      Signed-off-by: NMarc Dionne <marc.c.dionne@gmail.com>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3350b2ac
    • D
      SLOW_WORK: Fix the CONFIG_MODULES=n case · fa1dae49
      David Howells 提交于
      Commits 3d7a641e ("SLOW_WORK: Wait for outstanding work items belonging to a
      module to clear") introduced some code to make sure that all of a module's
      slow-work items were complete before that module was removed, and commit
      3bde31a4 ("SLOW_WORK: Allow a requeueable work item to sleep till the thread is
      needed") further extended that, breaking it in the process if CONFIG_MODULES=n:
      
          CC      kernel/slow-work.o
        kernel/slow-work.c: In function 'slow_work_execute':
        kernel/slow-work.c:313: error: 'slow_work_thread_processing' undeclared (first use in this function)
        kernel/slow-work.c:313: error: (Each undeclared identifier is reported only once
        kernel/slow-work.c:313: error: for each function it appears in.)
        kernel/slow-work.c: In function 'slow_work_wait_for_items':
        kernel/slow-work.c:950: error: 'slow_work_unreg_sync_lock' undeclared (first use in this function)
        kernel/slow-work.c:951: error: 'slow_work_unreg_wq' undeclared (first use in this function)
        kernel/slow-work.c:961: error: 'slow_work_unreg_work_item' undeclared (first use in this function)
        kernel/slow-work.c:974: error: 'slow_work_unreg_module' undeclared (first use in this function)
        kernel/slow-work.c:977: error: 'slow_work_thread_processing' undeclared (first use in this function)
        make[1]: *** [kernel/slow-work.o] Error 1
      
      Fix this by:
      
       (1) Extracting the bits of slow_work_execute() that are contingent on
           CONFIG_MODULES, and the bits that should be, into inline functions and
           placing them into the #ifdef'd section that defines the relevant variables
           and adding stubs for moduleless kernels.  This allows the removal of some
           #ifdefs.
      
       (2) #ifdef'ing out the contents of slow_work_wait_for_items() in moduleless
           kernels.
      
      The four functions related to handling module unloading synchronisation (and
      their associated variables) could be offloaded into a separate .c file, but
      each function is only used once and three of them are tiny, so doing so would
      prevent them from being inlined.
      Reported-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fa1dae49