Whamcloud - gitweb
LU-5969 lustreapi: allow "version" without "lustre:" 24/25324/2
authorAndreas Dilger <andreas.dilger@intel.com>
Wed, 8 Feb 2017 12:11:32 +0000 (05:11 -0700)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 15 Feb 2017 01:03:03 +0000 (01:03 +0000)
The upstream kernel /sys/fs/lustre/version file does not have the
"lustre:" prefix in it, only the version string.  Since we no longer
have multiple version strings in this file, if "lustre:" is not
found then just assume the whole string is the version, otherwise
continue to strip out the "lustre:" prefix as we did before.

Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Change-Id: Ife50f83ad422a8e3c9ae857f519a5cf4ca3ebbe5
Reviewed-on: https://review.whamcloud.com/25324
Tested-by: Jenkins
Reviewed-by: Patrick Farrell <paf@cray.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/utils/liblustreapi_util.c

index db84f98..44eeb31 100644 (file)
@@ -124,21 +124,24 @@ int llapi_get_version_string(char *version, unsigned int version_size)
        }
 
        ptr = strstr(buffer, "lustre:");
-       if (ptr != NULL) {
-               llapi_chomp_string(ptr);
+       if (ptr) {
                ptr += strlen("lustre:");
                while (*ptr == ' ' || *ptr == '\t')
                        ptr++;
-
-               if (strlcpy(version, ptr, version_size) >= version_size) {
-                       errno = EOVERFLOW;
-                       return -1;
-               }
        } else {
+               ptr = buffer;
+       }
+       llapi_chomp_string(ptr);
+
+       if (ptr[0] == '\0') {
                errno = ENODATA;
                return -1;
        }
 
+       if (strlcpy(version, ptr, version_size) >= version_size) {
+               errno = EOVERFLOW;
+               return -1;
+       }
        return 0;
 }