[PATCH 4/4] virSCSIHostFindByPCI: Fix link detection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Inside of virSCSIHostFindByPCI() there's a loop which iterates of
entries of "/sys/class/scsi_host" directory trying to identify
all symlinks (which then point to a SCSI device, but that's not
important right now). But the way virFileIsLink() is called can
never return a truthful reply - because it's called over
dent->d_name instead of full path. Fix this by moving the
virFileIsLink() call and passing constructed path into it.

Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx>
---
 src/util/virscsihost.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/util/virscsihost.c b/src/util/virscsihost.c
index 014b96452c..32d7f2312f 100644
--- a/src/util/virscsihost.c
+++ b/src/util/virscsihost.c
@@ -107,11 +107,11 @@ virSCSIHostFindByPCI(const char *sysfs_prefix,
         char *p = NULL;
         unsigned int read_unique_id;
 
-        if (!virFileIsLink(entry->d_name))
-            continue;
-
         host_link = g_strdup_printf("%s/%s", prefix, entry->d_name);
 
+        if (!virFileIsLink(host_link))
+            continue;
+
         if (virFileResolveLink(host_link, &host_path) < 0)
             return NULL;
 
-- 
2.39.2




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux