From bb29ae49e74336d04aa3de06485a61c4f5e88b1d Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Wed, 6 Aug 2003 21:13:35 -0700 Subject: [PATCH] [PATCH] remount_fs needs lock_kernel() The new emergency remount path forgot to take lock_kernel(), which is required for ->remount_fs(). --- fs/super.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/fs/super.c b/fs/super.c index 8f1f26de16736..ae60330a6c8f3 100644 --- a/fs/super.c +++ b/fs/super.c @@ -488,8 +488,16 @@ static void do_emergency_remount(unsigned long foo) sb->s_count++; spin_unlock(&sb_lock); down_read(&sb->s_umount); - if (sb->s_root && sb->s_bdev && !(sb->s_flags & MS_RDONLY)) + 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(); do_remount_sb(sb, MS_RDONLY, NULL, 1); + unlock_kernel(); + } drop_super(sb); spin_lock(&sb_lock); } -- 2.53.0