提交 e0d6cb9c 编写于 作者: M Michael Marineau 提交者: Eric Van Hensbergen

9p: send uevent after adding/removing mount_tag attribute

This driver adds an attribute to the existing virtio device so a CHANGE
event is required in order udev rules to make use of it. The ADD event
happens before this driver is probed and unlike a more typical driver
like a block device there isn't a higher level device to watch for.
Signed-off-by: NMichael Marineau <michael.marineau@coreos.com>
Signed-off-by: NEric Van Hensbergen <ericvh@gmail.com>
上级 b3f8ab4b
...@@ -577,6 +577,10 @@ static int p9_virtio_probe(struct virtio_device *vdev) ...@@ -577,6 +577,10 @@ static int p9_virtio_probe(struct virtio_device *vdev)
mutex_lock(&virtio_9p_lock); mutex_lock(&virtio_9p_lock);
list_add_tail(&chan->chan_list, &virtio_chan_list); list_add_tail(&chan->chan_list, &virtio_chan_list);
mutex_unlock(&virtio_9p_lock); mutex_unlock(&virtio_9p_lock);
/* Let udev rules use the new mount_tag attribute. */
kobject_uevent(&(vdev->dev.kobj), KOBJ_CHANGE);
return 0; return 0;
out_free_tag: out_free_tag:
...@@ -654,6 +658,7 @@ static void p9_virtio_remove(struct virtio_device *vdev) ...@@ -654,6 +658,7 @@ static void p9_virtio_remove(struct virtio_device *vdev)
list_del(&chan->chan_list); list_del(&chan->chan_list);
mutex_unlock(&virtio_9p_lock); mutex_unlock(&virtio_9p_lock);
sysfs_remove_file(&(vdev->dev.kobj), &dev_attr_mount_tag.attr); sysfs_remove_file(&(vdev->dev.kobj), &dev_attr_mount_tag.attr);
kobject_uevent(&(vdev->dev.kobj), KOBJ_CHANGE);
kfree(chan->tag); kfree(chan->tag);
kfree(chan->vc_wq); kfree(chan->vc_wq);
kfree(chan); kfree(chan);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册