• Alexander Viro's avatar
    [PATCH] BKL-free ext2_get_block() · 9ff32a07
    Alexander Viro authored
    	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.
    9ff32a07
super.c 25.9 KB