Blame open-iscsi-2.0-870.1-ibft-newer-kernel.patch
|
dgregor |
2628f30 |
diff -up open-iscsi-2.0-870.1/utils/fwparam_ibft/fwparam_ibft_sysfs.c~ open-iscsi-2.0-870.1/utils/fwparam_ibft/fwparam_ibft_sysfs.c
|
|
dgregor |
2628f30 |
--- open-iscsi-2.0-870.1/utils/fwparam_ibft/fwparam_ibft_sysfs.c~ 2009-01-28 22:09:21.000000000 +0100
|
|
dgregor |
2628f30 |
+++ open-iscsi-2.0-870.1/utils/fwparam_ibft/fwparam_ibft_sysfs.c 2009-01-28 22:10:29.000000000 +0100
|
|
dgregor |
2628f30 |
@@ -186,6 +186,40 @@ static int get_iface_from_device(const c
|
|
dgregor |
2628f30 |
break;
|
|
dgregor |
2628f30 |
}
|
|
dgregor |
2628f30 |
|
|
dgregor |
2628f30 |
+ closedir(dirfd);
|
|
dgregor |
2628f30 |
+
|
|
dgregor |
2628f30 |
+ if (rc != ENODEV)
|
|
dgregor |
2628f30 |
+ return rc;
|
|
dgregor |
2628f30 |
+
|
|
dgregor |
2628f30 |
+ /* If not found try again with newer kernel networkdev sysfs layout */
|
|
dgregor |
2628f30 |
+ strncat(dev_dir, "/net", FILENAMESZ);
|
|
dgregor |
2628f30 |
+
|
|
dgregor |
2628f30 |
+ if (!file_exist(dev_dir))
|
|
dgregor |
2628f30 |
+ return rc;
|
|
dgregor |
2628f30 |
+
|
|
dgregor |
2628f30 |
+ dirfd = opendir(dev_dir);
|
|
dgregor |
2628f30 |
+ if (!dirfd)
|
|
dgregor |
2628f30 |
+ return errno;
|
|
dgregor |
2628f30 |
+
|
|
dgregor |
2628f30 |
+ while ((dent = readdir(dirfd))) {
|
|
dgregor |
2628f30 |
+ if (!strcmp(dent->d_name, ".") || !strcmp(dent->d_name, ".."))
|
|
dgregor |
2628f30 |
+ continue;
|
|
dgregor |
2628f30 |
+
|
|
dgregor |
2628f30 |
+ /* Take the first "regular" directory entry */
|
|
dgregor |
2628f30 |
+ if (strlen(dent->d_name) > (sizeof(context->iface) - 1)) {
|
|
dgregor |
2628f30 |
+ rc = EINVAL;
|
|
dgregor |
2628f30 |
+ printf("Net device %s too bug for iface buffer.\n",
|
|
dgregor |
2628f30 |
+ dent->d_name);
|
|
dgregor |
2628f30 |
+ break;
|
|
dgregor |
2628f30 |
+ }
|
|
dgregor |
2628f30 |
+
|
|
dgregor |
2628f30 |
+ strcpy(context->iface, dent->d_name);
|
|
dgregor |
2628f30 |
+ rc = 0;
|
|
dgregor |
2628f30 |
+ break;
|
|
dgregor |
2628f30 |
+ }
|
|
dgregor |
2628f30 |
+
|
|
dgregor |
2628f30 |
+ closedir(dirfd);
|
|
dgregor |
2628f30 |
+
|
|
dgregor |
2628f30 |
return rc;
|
|
dgregor |
2628f30 |
}
|
|
dgregor |
2628f30 |
|