[PATCH] BKL-free ext2_get_block()
authorAlexander Viro <viro@math.psu.edu>
Mon, 11 Feb 2002 13:26:50 +0000 (05:26 -0800)
committerLinus Torvalds <torvalds@home.transmeta.com>
Mon, 11 Feb 2002 13:26:50 +0000 (05:26 -0800)
commit9ff32a07dfd9c4a0c8819a6b3bcc87fa80234837
tree465fbd01616dd666622b62a3c75437a34727df46
parentd1adbf38513115b5c3f74323fa90e53bff74533c
[PATCH] BKL-free ext2_get_block()

Linus, I've got the first of BKL-removal ext2 patches ready to
go.  It removes BKL from ext2_get_block() and guts of ext2_truncate().
The only place where we hold BKL on these paths is in dquot.c - probably
can be easily dealt with, but threading quota is a separate story.

Inode metadata (pointers to blocks, both in inode itself and in
indirect blocks, preallocation data and allocation goal) are protected
by rwlock - EXT2_I(inode)->i_meta_lock.

Next steps will involve threading the group descriptors and bitmaps
handling - lock_super() uses in ext2 are going to die.  However, that's
a separate story - let's do that step-by-step.

I suspect that patch below will take care of almost all BKL contention
from ext2 - we still have BKL held over directory operations, but for regular
files that's it.
fs/dquot.c
fs/ext2/balloc.c
fs/ext2/ext2.h
fs/ext2/inode.c
fs/ext2/super.c