1. 21 Jan, 2013 1 commit
  2. 02 Mar, 2011 1 commit
    • 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: 's avatarArnd Bergmann <arnd@arndb.de>
      Tested-by: 's avatarNick Bowler <nbowler@elliptictech.com>
      Cc: Evgeniy Dushistov <dushistov@mail.ru>
      Cc: Nick Piggin <npiggin@gmail.com>
  3. 21 Oct, 2010 1 commit
    • Arnd Bergmann's avatar
      BKL: introduce CONFIG_BKL. · 6de5bd12
      Arnd Bergmann authored
      With all the patches we have queued in the BKL removal tree, only a
      few dozen modules are left that actually rely on the BKL, and even
      there are lots of low-hanging fruit. We need to decide what to do
      about them, this patch illustrates one of the options:
      Every user of the BKL is marked as 'depends on BKL' in Kconfig,
      and the CONFIG_BKL becomes a user-visible option. If it gets
      disabled, no BKL using module can be built any more and the BKL
      code itself is compiled out.
      The one exception is file locking, which is practically always
      enabled and does a 'select BKL' instead. This effectively forces
      CONFIG_BKL to be enabled until we have solved the fs/lockd
      mess and can apply the patch that removes the BKL from fs/locks.c.
      Signed-off-by: 's avatarArnd Bergmann <arnd@arndb.de>
  4. 22 Jan, 2009 1 commit