Commit 833c5a42 authored by Miklos Szeredi's avatar Miklos Szeredi

virtiofs: clean up error handling in virtio_fs_get_tree()

Avoid duplicating error cleanup.
Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
parent 6a68d1e1
...@@ -1420,22 +1420,14 @@ static int virtio_fs_get_tree(struct fs_context *fsc) ...@@ -1420,22 +1420,14 @@ static int virtio_fs_get_tree(struct fs_context *fsc)
return -EINVAL; return -EINVAL;
} }
err = -ENOMEM;
fc = kzalloc(sizeof(struct fuse_conn), GFP_KERNEL); fc = kzalloc(sizeof(struct fuse_conn), GFP_KERNEL);
if (!fc) { if (!fc)
mutex_lock(&virtio_fs_mutex); goto out_err;
virtio_fs_put(fs);
mutex_unlock(&virtio_fs_mutex);
return -ENOMEM;
}
fm = kzalloc(sizeof(struct fuse_mount), GFP_KERNEL); fm = kzalloc(sizeof(struct fuse_mount), GFP_KERNEL);
if (!fm) { if (!fm)
mutex_lock(&virtio_fs_mutex); goto out_err;
virtio_fs_put(fs);
mutex_unlock(&virtio_fs_mutex);
kfree(fc);
return -ENOMEM;
}
fuse_conn_init(fc, fm, get_user_ns(current_user_ns()), fuse_conn_init(fc, fm, get_user_ns(current_user_ns()),
&virtio_fs_fiq_ops, fs); &virtio_fs_fiq_ops, fs);
...@@ -1468,6 +1460,13 @@ static int virtio_fs_get_tree(struct fs_context *fsc) ...@@ -1468,6 +1460,13 @@ static int virtio_fs_get_tree(struct fs_context *fsc)
WARN_ON(fsc->root); WARN_ON(fsc->root);
fsc->root = dget(sb->s_root); fsc->root = dget(sb->s_root);
return 0; return 0;
out_err:
kfree(fc);
mutex_lock(&virtio_fs_mutex);
virtio_fs_put(fs);
mutex_unlock(&virtio_fs_mutex);
return err;
} }
static const struct fs_context_operations virtio_fs_context_ops = { static const struct fs_context_operations virtio_fs_context_ops = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment