kernel-ark/fs/ufs
Arnd Bergmann 788257d610 ufs: remove the BKL
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: Arnd Bergmann <arnd@arndb.de>
Tested-by: Nick Bowler <nbowler@elliptictech.com>
Cc: Evgeniy Dushistov <dushistov@mail.ru>
Cc: Nick Piggin <npiggin@gmail.com>
2011-03-02 22:27:48 +01:00
..
balloc.c remove SWRITE* I/O types 2010-08-18 01:09:01 -04:00
cylinder.c
dir.c clean up write_begin usage for directories in pagecache 2010-08-09 16:47:31 -04:00
file.c Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6 2010-05-30 09:11:11 -07:00
ialloc.c remove SWRITE* I/O types 2010-08-18 01:09:01 -04:00
inode.c ufs: remove the BKL 2011-03-02 22:27:48 +01:00
Kconfig ufs: remove the BKL 2011-03-02 22:27:48 +01:00
Makefile
namei.c ufs: remove the BKL 2011-03-02 22:27:48 +01:00
super.c ufs: remove the BKL 2011-03-02 22:27:48 +01:00
swab.h
symlink.c ufs: add ufs speciffic ->setattr call 2010-05-21 19:30:40 +02:00
truncate.c ufs: remove the BKL 2011-03-02 22:27:48 +01:00
ufs_fs.h ufs: permit mounting of BorderWare filesystems 2010-05-27 09:12:43 -07:00
ufs.h ufs: remove the BKL 2011-03-02 22:27:48 +01:00
util.c ufs: remove the BKL 2011-03-02 22:27:48 +01:00
util.h remove SWRITE* I/O types 2010-08-18 01:09:01 -04:00