On 11/08/2013 08:47 AM, Niilona wrote:
@@ -2412,15 +2420,16 @@ virPCIGetVirtualFunctions(const char *sy
return ret;
}
- while ((entry = readdir(dir))) {
- if (STRPREFIX(entry->d_name, "virtfn")) {
+ entry_count = scandir(sysfs_path, &namelist, virtfn_select, alphasort);
alphasort will make sure that the order is always wrong if there are more than
10 functions.
Hopefully we can use versionsort thanks to gnulib.
+
+ while ( current_entry < entry_count ) {
virPCIDeviceAddress *config_addr = NULL;
- if (virBuildPath(&device_link, sysfs_path, entry->d_name) == -1) {
+ if (virBuildPath(&device_link, sysfs_path, namelist[
current_entry ]->d_name ) == -1) {
virReportOOMError();
goto error;
}
-
+ current_entry ++;
VIR_DEBUG("Number of virtual functions: %d",
*num_virtual_functions);