diff options
Diffstat (limited to '0079-RHBZ-650797-display-iscsi-tgt-name.patch')
-rw-r--r-- | 0079-RHBZ-650797-display-iscsi-tgt-name.patch | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/0079-RHBZ-650797-display-iscsi-tgt-name.patch b/0079-RHBZ-650797-display-iscsi-tgt-name.patch new file mode 100644 index 0000000..f7e06de --- /dev/null +++ b/0079-RHBZ-650797-display-iscsi-tgt-name.patch @@ -0,0 +1,55 @@ +--- + libmultipath/discovery.c | 19 ++++++++++++++++++- + libmultipath/structs.h | 2 +- + 2 files changed, 19 insertions(+), 2 deletions(-) + +Index: multipath-tools/libmultipath/discovery.c +=================================================================== +--- multipath-tools.orig/libmultipath/discovery.c ++++ multipath-tools/libmultipath/discovery.c +@@ -212,6 +212,7 @@ sysfs_get_fc_nodename (struct sysfs_devi + unsigned int host, unsigned int channel, + unsigned int target) + { ++ unsigned int checkhost, session; + char attr_path[SYSFS_PATH_SIZE], *attr; + + if (safe_sprintf(attr_path, +@@ -223,7 +224,23 @@ sysfs_get_fc_nodename (struct sysfs_devi + + attr = sysfs_attr_get_value(attr_path, "node_name"); + if (attr) { +- strlcpy(node, attr, strlen(attr)); ++ strncpy(node, attr, strlen(attr)); ++ return 0; ++ } ++ ++ if (sscanf(dev->devpath, "/devices/platform/host%u/session%u/", ++ &checkhost, &session) != 2) ++ return 1; ++ if (checkhost != host) ++ return 1; ++ if (safe_sprintf(attr_path, "/devices/platform/host%u/session%u/iscsi_session/session%u", host, session, session)) { ++ condlog(0, "attr_path too small"); ++ return 1; ++ } ++ ++ attr = sysfs_attr_get_value(attr_path, "targetname"); ++ if (attr) { ++ strncpy(node, attr, strlen(attr)); + return 0; + } + +Index: multipath-tools/libmultipath/structs.h +=================================================================== +--- multipath-tools.orig/libmultipath/structs.h ++++ multipath-tools/libmultipath/structs.h +@@ -5,7 +5,7 @@ + + #define WWID_SIZE 128 + #define SERIAL_SIZE 64 +-#define NODE_NAME_SIZE 19 ++#define NODE_NAME_SIZE 224 + #define PATH_STR_SIZE 16 + #define PARAMS_SIZE 1024 + #define FILE_NAME_SIZE 256 |