aboutsummaryrefslogtreecommitdiffstats
path: root/fs/udf/super.c
diff options
context:
space:
mode:
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)
1880 struct kernel_lb_addr rootdir, fileset; 1880 struct kernel_lb_addr rootdir, fileset;
1881 struct udf_sb_info *sbi; 1881 struct udf_sb_info *sbi;
1882 1882
1883 lock_kernel();
1884
1883 uopt.flags = (1 << UDF_FLAG_USE_AD_IN_ICB) | (1 << UDF_FLAG_STRICT); 1885 uopt.flags = (1 << UDF_FLAG_USE_AD_IN_ICB) | (1 << UDF_FLAG_STRICT);
1884 uopt.uid = -1; 1886 uopt.uid = -1;
1885 uopt.gid = -1; 1887 uopt.gid = -1;
@@ -1888,8 +1890,10 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
1888 uopt.dmode = UDF_INVALID_MODE; 1890 uopt.dmode = UDF_INVALID_MODE;
1889 1891
1890 sbi = kzalloc(sizeof(struct udf_sb_info), GFP_KERNEL); 1892 sbi = kzalloc(sizeof(struct udf_sb_info), GFP_KERNEL);
1891 if (!sbi) 1893 if (!sbi) {
1894 unlock_kernel();
1892 return -ENOMEM; 1895 return -ENOMEM;
1896 }
1893 1897
1894 sb->s_fs_info = sbi; 1898 sb->s_fs_info = sbi;
1895 1899
@@ -2035,6 +2039,7 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
2035 goto error_out; 2039 goto error_out;
2036 } 2040 }
2037 sb->s_maxbytes = MAX_LFS_FILESIZE; 2041 sb->s_maxbytes = MAX_LFS_FILESIZE;
2042 unlock_kernel();
2038 return 0; 2043 return 0;
2039 2044
2040error_out: 2045error_out:
@@ -2055,6 +2060,7 @@ error_out:
2055 kfree(sbi); 2060 kfree(sbi);
2056 sb->s_fs_info = NULL; 2061 sb->s_fs_info = NULL;
2057 2062
2063 unlock_kernel();
2058 return -EINVAL; 2064 return -EINVAL;
2059} 2065}
2060 2066