net/9p: Handle mount errors correctly.
With this patch we have # mount -t 9p -o trans=virtio virtio2 /mnt/ # mount -t 9p -o trans=virtio virtio2 /mnt/ mount: virtio2 already mounted or /mnt/ busy mount: according to mtab, virtio2 is already mounted on /mnt # mount -t 9p -o trans=virtio virtio3 /mnt/ -o debug=0xfff mount: special device virtio3 does not exist Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
This commit is contained in:
parent
37c1209d41
commit
c1a7c22620
|
@ -279,6 +279,7 @@ static int
|
||||||
p9_virtio_create(struct p9_client *client, const char *devname, char *args)
|
p9_virtio_create(struct p9_client *client, const char *devname, char *args)
|
||||||
{
|
{
|
||||||
struct virtio_chan *chan;
|
struct virtio_chan *chan;
|
||||||
|
int ret = -ENOENT;
|
||||||
int found = 0;
|
int found = 0;
|
||||||
|
|
||||||
mutex_lock(&virtio_9p_lock);
|
mutex_lock(&virtio_9p_lock);
|
||||||
|
@ -289,13 +290,14 @@ p9_virtio_create(struct p9_client *client, const char *devname, char *args)
|
||||||
found = 1;
|
found = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
ret = -EBUSY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mutex_unlock(&virtio_9p_lock);
|
mutex_unlock(&virtio_9p_lock);
|
||||||
|
|
||||||
if (!found) {
|
if (!found) {
|
||||||
printk(KERN_ERR "9p: no channels available\n");
|
printk(KERN_ERR "9p: no channels available\n");
|
||||||
return -ENODEV;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
client->trans = (void *)chan;
|
client->trans = (void *)chan;
|
||||||
|
|
Loading…
Reference in New Issue