mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-18 02:04:05 +08:00
virtiofs: clean up error handling in virtio_fs_get_tree()
Avoid duplicating error cleanup. Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
This commit is contained in:
parent
6a68d1e151
commit
833c5a42e2
@ -1420,22 +1420,14 @@ static int virtio_fs_get_tree(struct fs_context *fsc)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
err = -ENOMEM;
|
||||
fc = kzalloc(sizeof(struct fuse_conn), GFP_KERNEL);
|
||||
if (!fc) {
|
||||
mutex_lock(&virtio_fs_mutex);
|
||||
virtio_fs_put(fs);
|
||||
mutex_unlock(&virtio_fs_mutex);
|
||||
return -ENOMEM;
|
||||
}
|
||||
if (!fc)
|
||||
goto out_err;
|
||||
|
||||
fm = kzalloc(sizeof(struct fuse_mount), GFP_KERNEL);
|
||||
if (!fm) {
|
||||
mutex_lock(&virtio_fs_mutex);
|
||||
virtio_fs_put(fs);
|
||||
mutex_unlock(&virtio_fs_mutex);
|
||||
kfree(fc);
|
||||
return -ENOMEM;
|
||||
}
|
||||
if (!fm)
|
||||
goto out_err;
|
||||
|
||||
fuse_conn_init(fc, fm, get_user_ns(current_user_ns()),
|
||||
&virtio_fs_fiq_ops, fs);
|
||||
@ -1468,6 +1460,13 @@ static int virtio_fs_get_tree(struct fs_context *fsc)
|
||||
WARN_ON(fsc->root);
|
||||
fsc->root = dget(sb->s_root);
|
||||
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 = {
|
||||
|
Loading…
Reference in New Issue
Block a user