From: Vasily Averin According to Documentation/filesystems/Locking remount_fs() does not require BKL. (akpm: what lock _does_ protect sb->s_flags?) Signed-off-by: Vasily Averin Cc: Al Viro Signed-off-by: Andrew Morton --- fs/namespace.c | 2 -- fs/super.c | 10 +--------- 2 files changed, 1 insertion(+), 11 deletions(-) diff -puN fs/namespace.c~vfs-bkl-is-not-required-for-remount_fs fs/namespace.c --- a/fs/namespace.c~vfs-bkl-is-not-required-for-remount_fs +++ a/fs/namespace.c @@ -594,10 +594,8 @@ static int do_umount(struct vfsmount *mn */ down_write(&sb->s_umount); if (!(sb->s_flags & MS_RDONLY)) { - lock_kernel(); DQUOT_OFF(sb); retval = do_remount_sb(sb, MS_RDONLY, NULL, 0); - unlock_kernel(); } up_write(&sb->s_umount); return retval; diff -puN fs/super.c~vfs-bkl-is-not-required-for-remount_fs fs/super.c --- a/fs/super.c~vfs-bkl-is-not-required-for-remount_fs +++ a/fs/super.c @@ -609,16 +609,8 @@ static void do_emergency_remount(unsigne sb->s_count++; spin_unlock(&sb_lock); down_read(&sb->s_umount); - if (sb->s_root && sb->s_bdev && !(sb->s_flags & MS_RDONLY)) { - /* - * ->remount_fs needs lock_kernel(). - * - * What lock protects sb->s_flags?? - */ - lock_kernel(); + if (sb->s_root && sb->s_bdev && !(sb->s_flags & MS_RDONLY)) do_remount_sb(sb, MS_RDONLY, NULL, 1); - unlock_kernel(); - } drop_super(sb); spin_lock(&sb_lock); } _