X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=fs%2Fudf%2Fsuper.c;h=6832135159b680e8563a9ebadd03ebf19eb8f80c;hb=337eb00a2c3a421999c39c94ce7e33545ee8baa7;hp=04802cc39b18d8f8016c3ec6b0dd052045df8031;hpb=6cfd0148425e528b859b26e436b01f23f6926224;p=safe%2Fjmp%2Flinux-2.6 diff --git a/fs/udf/super.c b/fs/udf/super.c index 04802cc..6832135 100644 --- a/fs/udf/super.c +++ b/fs/udf/super.c @@ -568,6 +568,7 @@ static int udf_remount_fs(struct super_block *sb, int *flags, char *options) if (!udf_parse_options(options, &uopt, true)) return -EINVAL; + lock_kernel(); sbi->s_flags = uopt.flags; sbi->s_uid = uopt.uid; sbi->s_gid = uopt.gid; @@ -581,13 +582,16 @@ static int udf_remount_fs(struct super_block *sb, int *flags, char *options) *flags |= MS_RDONLY; } - if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY)) + if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY)) { + unlock_kernel(); return 0; + } if (*flags & MS_RDONLY) udf_close_lvid(sb); else udf_open_lvid(sb); + unlock_kernel(); return 0; }