aboutsummaryrefslogtreecommitdiffstats
path: root/fs/efs/super.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/efs/super.c')
-rw-r--r--fs/efs/super.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/fs/efs/super.c b/fs/efs/super.c
index c79bc627f107..14082405cdd1 100644
--- a/fs/efs/super.c
+++ b/fs/efs/super.c
@@ -107,7 +107,6 @@ static int efs_remount(struct super_block *sb, int *flags, char *data)
107static const struct super_operations efs_superblock_operations = { 107static const struct super_operations efs_superblock_operations = {
108 .alloc_inode = efs_alloc_inode, 108 .alloc_inode = efs_alloc_inode,
109 .destroy_inode = efs_destroy_inode, 109 .destroy_inode = efs_destroy_inode,
110 .read_inode = efs_read_inode,
111 .put_super = efs_put_super, 110 .put_super = efs_put_super,
112 .statfs = efs_statfs, 111 .statfs = efs_statfs,
113 .remount_fs = efs_remount, 112 .remount_fs = efs_remount,
@@ -247,6 +246,7 @@ static int efs_fill_super(struct super_block *s, void *d, int silent)
247 struct efs_sb_info *sb; 246 struct efs_sb_info *sb;
248 struct buffer_head *bh; 247 struct buffer_head *bh;
249 struct inode *root; 248 struct inode *root;
249 int ret = -EINVAL;
250 250
251 sb = kzalloc(sizeof(struct efs_sb_info), GFP_KERNEL); 251 sb = kzalloc(sizeof(struct efs_sb_info), GFP_KERNEL);
252 if (!sb) 252 if (!sb)
@@ -303,12 +303,18 @@ static int efs_fill_super(struct super_block *s, void *d, int silent)
303 } 303 }
304 s->s_op = &efs_superblock_operations; 304 s->s_op = &efs_superblock_operations;
305 s->s_export_op = &efs_export_ops; 305 s->s_export_op = &efs_export_ops;
306 root = iget(s, EFS_ROOTINODE); 306 root = efs_iget(s, EFS_ROOTINODE);
307 if (IS_ERR(root)) {
308 printk(KERN_ERR "EFS: get root inode failed\n");
309 ret = PTR_ERR(root);
310 goto out_no_fs;
311 }
312
307 s->s_root = d_alloc_root(root); 313 s->s_root = d_alloc_root(root);
308
309 if (!(s->s_root)) { 314 if (!(s->s_root)) {
310 printk(KERN_ERR "EFS: get root inode failed\n"); 315 printk(KERN_ERR "EFS: get root dentry failed\n");
311 iput(root); 316 iput(root);
317 ret = -ENOMEM;
312 goto out_no_fs; 318 goto out_no_fs;
313 } 319 }
314 320
@@ -318,7 +324,7 @@ out_no_fs_ul:
318out_no_fs: 324out_no_fs:
319 s->s_fs_info = NULL; 325 s->s_fs_info = NULL;
320 kfree(sb); 326 kfree(sb);
321 return -EINVAL; 327 return ret;
322} 328}
323 329
324static int efs_statfs(struct dentry *dentry, struct kstatfs *buf) { 330static int efs_statfs(struct dentry *dentry, struct kstatfs *buf) {