summaryrefslogtreecommitdiffstats
path: root/net/9p
diff options
context:
space:
mode:
authorXie Yongji <xieyongji@bytedance.com>2021-05-17 16:35:57 +0800
committerDominique Martinet <asmadeus@codewreck.org>2021-07-27 23:01:15 +0900
commitf997ea3b7afc108eb9761f321b57de2d089c7c48 (patch)
tree5ce179118c560b871d6ed7a14e574398fee1fff2 /net/9p
parentff1176468d368232b684f75e82563369208bc371 (diff)
downloadlinux-f997ea3b7afc108eb9761f321b57de2d089c7c48.tar.gz
linux-f997ea3b7afc108eb9761f321b57de2d089c7c48.tar.bz2
linux-f997ea3b7afc108eb9761f321b57de2d089c7c48.zip
9p/trans_virtio: Remove sysfs file on probe failure
This ensures we don't leak the sysfs file if we failed to allocate chan->vc_wq during probe. Link: http://lkml.kernel.org/r/20210517083557.172-1-xieyongji@bytedance.com Fixes: 86c8437383ac ("net/9p: Add sysfs mount_tag file for virtio 9P device") Signed-off-by: Xie Yongji <xieyongji@bytedance.com> Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
Diffstat (limited to 'net/9p')
-rw-r--r--net/9p/trans_virtio.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c
index 2bbd7dce0f1d..490a4c900339 100644
--- a/net/9p/trans_virtio.c
+++ b/net/9p/trans_virtio.c
@@ -610,7 +610,7 @@ static int p9_virtio_probe(struct virtio_device *vdev)
chan->vc_wq = kmalloc(sizeof(wait_queue_head_t), GFP_KERNEL);
if (!chan->vc_wq) {
err = -ENOMEM;
- goto out_free_tag;
+ goto out_remove_file;
}
init_waitqueue_head(chan->vc_wq);
chan->ring_bufs_avail = 1;
@@ -628,6 +628,8 @@ static int p9_virtio_probe(struct virtio_device *vdev)
return 0;
+out_remove_file:
+ sysfs_remove_file(&vdev->dev.kobj, &dev_attr_mount_tag.attr);
out_free_tag:
kfree(tag);
out_free_vq: