[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.
Showing
Please register or sign in to comment