<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Feb 10, 2017 at 6:57 PM Michal Privoznik <<a href="mailto:mprivozn@redhat.com">mprivozn@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">There's no need for this function. Currently it is passed as a<br class="gmail_msg">
callback to virSCSIDeviceFileIterate(). However, SCSI devices<br class="gmail_msg">
have just one file path. Therefore we can mimic approach used in<br class="gmail_msg">
qemuDomainGetHostdevPath() to get path and call<br class="gmail_msg">
virCgroupAllowDevicePath() directly.<br class="gmail_msg">
<br class="gmail_msg">
Signed-off-by: Michal Privoznik <<a href="mailto:mprivozn@redhat.com" class="gmail_msg" target="_blank">mprivozn@redhat.com</a>><br class="gmail_msg"></blockquote><div><br><br>Reviewed-by: Marc-André Lureau <<a href="mailto:marcandre.lureau@redhat.com">marcandre.lureau@redhat.com</a>><br><br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
---<br class="gmail_msg">
 src/qemu/qemu_cgroup.c | 38 +++++++++++++-------------------------<br class="gmail_msg">
 1 file changed, 13 insertions(+), 25 deletions(-)<br class="gmail_msg">
<br class="gmail_msg">
diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c<br class="gmail_msg">
index 7302c43ee..6017da662 100644<br class="gmail_msg">
--- a/src/qemu/qemu_cgroup.c<br class="gmail_msg">
+++ b/src/qemu/qemu_cgroup.c<br class="gmail_msg">
@@ -260,28 +260,6 @@ qemuSetupInputCgroup(virDomainObjPtr vm,<br class="gmail_msg">
 }<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
-static int<br class="gmail_msg">
-qemuSetupHostSCSIDeviceCgroup(virSCSIDevicePtr dev ATTRIBUTE_UNUSED,<br class="gmail_msg">
-                              const char *path,<br class="gmail_msg">
-                              void *opaque)<br class="gmail_msg">
-{<br class="gmail_msg">
-    virDomainObjPtr vm = opaque;<br class="gmail_msg">
-    qemuDomainObjPrivatePtr priv = vm->privateData;<br class="gmail_msg">
-    int ret;<br class="gmail_msg">
-<br class="gmail_msg">
-    VIR_DEBUG("Process path '%s' for SCSI device", path);<br class="gmail_msg">
-<br class="gmail_msg">
-    ret = virCgroupAllowDevicePath(priv->cgroup, path,<br class="gmail_msg">
-                                   virSCSIDeviceGetReadonly(dev) ?<br class="gmail_msg">
-                                   VIR_CGROUP_DEVICE_READ :<br class="gmail_msg">
-                                   VIR_CGROUP_DEVICE_RW, false);<br class="gmail_msg">
-<br class="gmail_msg">
-    virDomainAuditCgroupPath(vm, priv->cgroup, "allow", path,<br class="gmail_msg">
-                             virSCSIDeviceGetReadonly(dev) ? "r" : "rw", ret == 0);<br class="gmail_msg">
-<br class="gmail_msg">
-    return ret;<br class="gmail_msg">
-}<br class="gmail_msg">
-<br class="gmail_msg">
 static int<br class="gmail_msg">
 qemuSetupHostSCSIVHostDeviceCgroup(virSCSIVHostDevicePtr dev ATTRIBUTE_UNUSED,<br class="gmail_msg">
                                    const char *path,<br class="gmail_msg">
@@ -395,9 +373,19 @@ qemuSetupHostdevCgroup(virDomainObjPtr vm,<br class="gmail_msg">
                                              dev->shareable)) == NULL)<br class="gmail_msg">
                     goto cleanup;<br class="gmail_msg">
<br class="gmail_msg">
-                if (virSCSIDeviceFileIterate(scsi,<br class="gmail_msg">
-                                             qemuSetupHostSCSIDeviceCgroup,<br class="gmail_msg">
-                                             vm) < 0)<br class="gmail_msg">
+                if (VIR_STRDUP(path, virSCSIDeviceGetPath(scsi)) < 0)<br class="gmail_msg">
+                    goto cleanup;<br class="gmail_msg">
+<br class="gmail_msg">
+                VIR_DEBUG("Process path '%s' for SCSI device", path);<br class="gmail_msg">
+                rv = virCgroupAllowDevicePath(priv->cgroup, path,<br class="gmail_msg">
+                                              virSCSIDeviceGetReadonly(scsi) ?<br class="gmail_msg">
+                                              VIR_CGROUP_DEVICE_READ :<br class="gmail_msg">
+                                              VIR_CGROUP_DEVICE_RW, false);<br class="gmail_msg">
+<br class="gmail_msg">
+                virDomainAuditCgroupPath(vm, priv->cgroup, "allow", path,<br class="gmail_msg">
+                                         virSCSIDeviceGetReadonly(scsi) ? "r" : "rw",<br class="gmail_msg">
+                                         rv == 0);<br class="gmail_msg">
+                if (rv < 0)<br class="gmail_msg">
                     goto cleanup;<br class="gmail_msg">
             }<br class="gmail_msg">
             break;<br class="gmail_msg">
--<br class="gmail_msg">
2.11.0<br class="gmail_msg">
<br class="gmail_msg">
--<br class="gmail_msg">
libvir-list mailing list<br class="gmail_msg">
<a href="mailto:libvir-list@redhat.com" class="gmail_msg" target="_blank">libvir-list@redhat.com</a><br class="gmail_msg">
<a href="https://www.redhat.com/mailman/listinfo/libvir-list" rel="noreferrer" class="gmail_msg" target="_blank">https://www.redhat.com/mailman/listinfo/libvir-list</a><br class="gmail_msg">
</blockquote></div></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature"><div dir="ltr">Marc-André Lureau<br></div></div>