提交 8af634ff 编写于 作者: J Jan Kara

ext2: Fix possible sleep in atomic during mount option parsing

match_int() used in mount option parsing can allocate memory using
GFP_KERNEL and thus sleep. Avoid parsing mount options with sbi->s_lock
held.
Signed-off-by: NJan Kara <jack@suse.cz>
上级 08851957
......@@ -1321,20 +1321,20 @@ static int ext2_remount (struct super_block * sb, int * flags, char * data)
int err;
sync_filesystem(sb);
spin_lock(&sbi->s_lock);
spin_lock(&sbi->s_lock);
new_opts.s_mount_opt = sbi->s_mount_opt;
new_opts.s_resuid = sbi->s_resuid;
new_opts.s_resgid = sbi->s_resgid;
spin_unlock(&sbi->s_lock);
/*
* Allow the "check" option to be passed as a remount option.
*/
if (!parse_options(data, sb, &new_opts)) {
spin_unlock(&sbi->s_lock);
if (!parse_options(data, sb, &new_opts))
return -EINVAL;
}
spin_lock(&sbi->s_lock);
es = sbi->s_es;
if ((sbi->s_mount_opt ^ new_opts.s_mount_opt) & EXT2_MOUNT_DAX) {
ext2_msg(sb, KERN_WARNING, "warning: refusing change of "
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册