net/9p: Add multi channel support.
This is needed for supporting multiple mount points. We can find out the device names to be used with mount by checking /sys/devices/virtio-pci/virtio*/device file if the device file have value 9 then the specific virtio device can be used for mounting. ex: #cat /sys/devices/virtio-pci/virtio1/device 9 now we can mount using # mount -t 9p -o trans=virtio virtio1 /mnt/ 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
64ba992675
commit
f75580c4af
|
@ -6,6 +6,6 @@
|
||||||
#include <linux/virtio_config.h>
|
#include <linux/virtio_config.h>
|
||||||
|
|
||||||
/* Maximum number of virtio channels per partition (1 for now) */
|
/* Maximum number of virtio channels per partition (1 for now) */
|
||||||
#define MAX_9P_CHAN 1
|
#define MAX_9P_CHAN 10
|
||||||
|
|
||||||
#endif /* _LINUX_VIRTIO_9P_H */
|
#endif /* _LINUX_VIRTIO_9P_H */
|
||||||
|
|
|
@ -296,14 +296,16 @@ p9_virtio_create(struct p9_client *client, const char *devname, char *args)
|
||||||
|
|
||||||
mutex_lock(&virtio_9p_lock);
|
mutex_lock(&virtio_9p_lock);
|
||||||
while (index < MAX_9P_CHAN) {
|
while (index < MAX_9P_CHAN) {
|
||||||
if (chan->initialized && !chan->inuse) {
|
if (chan->initialized &&
|
||||||
|
!strcmp(devname, dev_name(&chan->vdev->dev))) {
|
||||||
|
if (!chan->inuse) {
|
||||||
chan->inuse = true;
|
chan->inuse = true;
|
||||||
break;
|
break;
|
||||||
} else {
|
}
|
||||||
|
}
|
||||||
index++;
|
index++;
|
||||||
chan = &channels[index];
|
chan = &channels[index];
|
||||||
}
|
}
|
||||||
}
|
|
||||||
mutex_unlock(&virtio_9p_lock);
|
mutex_unlock(&virtio_9p_lock);
|
||||||
|
|
||||||
if (index >= MAX_9P_CHAN) {
|
if (index >= MAX_9P_CHAN) {
|
||||||
|
|
Loading…
Reference in New Issue