summaryrefslogtreecommitdiff
path: root/fs/udf/super.c
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2010-09-15 14:01:09 +1000
committerStephen Rothwell <sfr@canb.auug.org.au>2010-09-15 14:01:09 +1000
commit8a5090cbfff95eb20499013e1e297fbe8a30b4d6 (patch)
tree7b8c535e58fdf9cfa13735dd6ba4378a79d240a1 /fs/udf/super.c
parent7377900039da3fdd46f0b11b43a3cf8c61f94659 (diff)
parent775d1df554071c7c5cef76ef1396645f9b942b94 (diff)
Merge remote branch 'bkl-vfs/vfs'
Conflicts: drivers/usb/gadget/inode.c fs/nilfs2/super.c
Diffstat (limited to 'fs/udf/super.c')
-rw-r--r--fs/udf/super.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/udf/super.c b/fs/udf/super.c
index 65412d84a45d..76f3d6d97b40 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -1880,6 +1880,8 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
struct kernel_lb_addr rootdir, fileset;
struct udf_sb_info *sbi;
+ lock_kernel();
+
uopt.flags = (1 << UDF_FLAG_USE_AD_IN_ICB) | (1 << UDF_FLAG_STRICT);
uopt.uid = -1;
uopt.gid = -1;
@@ -1888,8 +1890,10 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
uopt.dmode = UDF_INVALID_MODE;
sbi = kzalloc(sizeof(struct udf_sb_info), GFP_KERNEL);
- if (!sbi)
+ if (!sbi) {
+ unlock_kernel();
return -ENOMEM;
+ }
sb->s_fs_info = sbi;
@@ -2035,6 +2039,7 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
goto error_out;
}
sb->s_maxbytes = MAX_LFS_FILESIZE;
+ unlock_kernel();
return 0;
error_out:
@@ -2055,6 +2060,7 @@ error_out:
kfree(sbi);
sb->s_fs_info = NULL;
+ unlock_kernel();
return -EINVAL;
}