Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 129994
b: refs/heads/master
c: c2b8f00
h: refs/heads/master
v: v3
  • Loading branch information
Miklos Szeredi authored and Miklos Szeredi committed Jan 26, 2009
1 parent 17f96e8 commit fdb46c2
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 19 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3ddf1e7f57237ac7c5d5bfb7058f1ea4f970b661
refs/heads/master: c2b8f006909b9bf9e165dfdf3c378527938c4497
37 changes: 19 additions & 18 deletions trunk/fs/fuse/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -805,16 +805,18 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
int err;
int is_bdev = sb->s_bdev != NULL;

err = -EINVAL;
if (sb->s_flags & MS_MANDLOCK)
return -EINVAL;
goto err;

if (!parse_fuse_opt((char *) data, &d, is_bdev))
return -EINVAL;
goto err;

if (is_bdev) {
#ifdef CONFIG_BLOCK
err = -EINVAL;
if (!sb_set_blocksize(sb, d.blksize))
return -EINVAL;
goto err;
#endif
} else {
sb->s_blocksize = PAGE_CACHE_SIZE;
Expand All @@ -826,25 +828,22 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
sb->s_export_op = &fuse_export_operations;

file = fget(d.fd);
err = -EINVAL;
if (!file)
return -EINVAL;
goto err;

if (file->f_op != &fuse_dev_operations) {
fput(file);
return -EINVAL;
}
if (file->f_op != &fuse_dev_operations)
goto err_fput;

fc = kmalloc(sizeof(*fc), GFP_KERNEL);
if (!fc) {
fput(file);
return -ENOMEM;
}
err = -ENOMEM;
if (!fc)
goto err_fput;

err = fuse_conn_init(fc, sb);
if (err) {
fput(file);
kfree(fc);
return err;
goto err_fput;
}

fc->release = fuse_free_conn;
Expand All @@ -859,12 +858,12 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
err = -ENOMEM;
root = fuse_get_root_inode(sb, d.rootmode);
if (!root)
goto err;
goto err_put_conn;

root_dentry = d_alloc_root(root);
if (!root_dentry) {
iput(root);
goto err;
goto err_put_conn;
}

init_req = fuse_request_alloc();
Expand Down Expand Up @@ -908,9 +907,11 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
fuse_request_free(init_req);
err_put_root:
dput(root_dentry);
err:
fput(file);
err_put_conn:
fuse_conn_put(fc);
err_fput:
fput(file);
err:
return err;
}

Expand Down

0 comments on commit fdb46c2

Please sign in to comment.