During the realtime preemption mini-summit we discussed the entire removal of the big kernel lock. I've started working on this for some filesystems. My plan is to push the BKL down to the implementations first and remove it from there later. This series is pushing the BKL from do_new_mount() down to the filesystems and removes it from ext series of filesystems and one other trivial use: if the BKL is only used in get_sb/fill_super due to the push-down, we just need to make sure that parallel calls to get_sb/fill_super would race against each other. I addressed the feedback from Matthew Wilcox and tried to be more verbose about why I think it is safe to remove the BKL. In most cases there is no shared resource accessed anyway so it is trivially safe to remove the lock. There are two filesystems where I'm not 100% sure if the proposed patch is enough, namely btrfs and xfs. Chris(+toph), could you help me here? I left out the patch to remove default_llseek() on purpose. This indeed needs some more lovin'. Comments? Jan Jan Blunck (27): BKL: Push down BKL from do_new_mount() to the filesystems get_sb/fill_super operation BKL: Remove outdated comment and include BKL: Remove BKL from simple_fill_super ext2: Add ext2_sb_info mutex BKL: Remove BKL from ext2 filesystem BKL: Remove BKL from ext3 fill_super() BKL: Remove BKL from ext3_put_super() and ext3_remount() BKL: Remove BKL from ext4 filesystem BKL: Remove BKL from 9p BKL: Remove BKL from autofs4 BKL: Remove BKL from befs BKL: Remove BKL from btrfs BKL: Remove BKL from configfs BKL: Remove BKL from cramfs BKL: Remove BKL from devpts BKL: Remove BKL from efs BKL: Remove BKL from exofs BKL: Remove BKL from hostfs BKL: Remove BKL from hugetlbfs BKL: Remove BKL from minix BKL: Remove BKL from omfs BKL: Remove BKL from openpromfs BKL: Remove BKL from ramfs BKL: Remove BKL from romfs BKL: Remove BKL from sysfs BKL: Remove BKL from ubifs BKL: Remove BKL from xfs fs/adfs/super.c | 8 ++++++- fs/affs/super.c | 9 +++++++- fs/afs/super.c | 5 ++++ fs/bfs/inode.c | 9 +++++++- fs/binfmt_misc.c | 6 ++++- fs/cifs/cifsfs.c | 12 +++++++++- fs/coda/inode.c | 8 ++++++- fs/ecryptfs/main.c | 3 ++ fs/exofs/super.c | 2 +- fs/ext2/inode.c | 5 +-- fs/ext2/super.c | 48 ++++++++++++++++++++++++++++--------------- fs/ext3/super.c | 12 ----------- fs/ext4/super.c | 11 ---------- fs/fat/namei_msdos.c | 6 ++++- fs/fat/namei_vfat.c | 6 ++++- fs/freevxfs/vxfs_super.c | 7 +++++- fs/fuse/control.c | 9 +++++++- fs/fuse/inode.c | 5 ++++ fs/gfs2/ops_fstype.c | 9 ++++++++ fs/hfs/super.c | 8 ++++++- fs/hfsplus/super.c | 8 ++++++- fs/hpfs/super.c | 8 ++++++- fs/hppfs/hppfs.c | 4 +++ fs/isofs/inode.c | 8 ++++++- fs/jffs2/super.c | 11 ++++++++- fs/jfs/super.c | 14 +++++++++++- fs/libfs.c | 1 + fs/namespace.c | 2 - fs/ncpfs/inode.c | 8 ++++++- fs/nfs/super.c | 19 +++++++++++++++++ fs/nfsd/nfsctl.c | 7 +++++- fs/nilfs2/super.c | 9 +++++++- fs/ntfs/super.c | 5 ++++ fs/ocfs2/dlm/dlmfs.c | 8 ++++++- fs/ocfs2/super.c | 5 ++++ fs/proc/root.c | 9 +++++++- fs/qnx4/inode.c | 8 ++++++- fs/reiserfs/super.c | 4 +++ fs/smbfs/inode.c | 5 ++++ fs/squashfs/super.c | 6 +++++ fs/super.c | 3 -- fs/sysfs/mount.c | 2 +- fs/sysv/super.c | 24 +++++++++++++++++---- fs/udf/super.c | 8 ++++++- fs/ufs/super.c | 5 ++++ include/linux/ext2_fs_sb.h | 2 + 46 files changed, 300 insertions(+), 81 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html