1. 02 Mar, 2011 2 commits
    • Arnd Bergmann's avatar
      ufs: remove the BKL · 788257d6
      Arnd Bergmann authored
      This introduces a new per-superblock mutex in UFS to replace
      the big kernel lock. I have been careful to avoid nested
      calls to lock_ufs and to get the lock order right with
      respect to other mutexes, in particular lock_super.
      
      I did not make any attempt to prove that the big kernel
      lock is not needed in a particular place in the code,
      which is very possible.
      
      The mutex has a significant performance impact, so it is only
      used on SMP or PREEMPT configurations.
      
      As Nick Piggin noticed, any allocation inside of the lock
      may end up deadlocking when we get to ufs_getfrag_block
      in the reclaim task, so we now use GFP_NOFS.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Tested-by: default avatarNick Bowler <nbowler@elliptictech.com>
      Cc: Evgeniy Dushistov <dushistov@mail.ru>
      Cc: Nick Piggin <npiggin@gmail.com>
      788257d6
    • Arnd Bergmann's avatar
      hpfs: remove the BKL · 9a311b96
      Arnd Bergmann authored
      This removes the BKL in hpfs in a rather awful
      way, by making the code only work on uniprocessor
      systems without kernel preemption, as suggested
      by Andi Kleen.
      
      The HPFS code probably has close to zero remaining
      users on current kernels, all archeological uses of
      the file system can probably be done with the significant
      restrictions.
      
      The hpfs_lock/hpfs_unlock functions are left in the
      code, sincen Mikulas has indicated that he is still
      interested in fixing it in a better way.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarAndi Kleen <ak@linux.intel.com>
      Cc: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
      Cc: linux-fsdevel@vger.kernel.org
      9a311b96
  2. 01 Mar, 2011 3 commits
  3. 22 Feb, 2011 2 commits
  4. 21 Feb, 2011 33 commits