Whamcloud - gitweb
LU-7813 utils: improve lfs setstripe pool error message 65/18965/3
authorAndreas Dilger <andreas.dilger@intel.com>
Wed, 16 Mar 2016 18:48:25 +0000 (12:48 -0600)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 16 Jun 2016 22:15:50 +0000 (22:15 +0000)
When a specified OST is not in the requested pool, improve the error
message printed to the user.  Currently it only prints:

  $ lfs setstripe -p audio -i 1 /myth/foo
  error: setstripe: create file '/myth/foo' failed

but this doesn't indicate why it failed.  Add in more information:

  error: setstripe: create file '/myth/foo' failed: OST not in pool?
  error: setstripe: create file '/myth/foo' failed: permission denied

Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Change-Id: I409739b1e3dad633f0b0a4c4f94a746c0b6485bd
Reviewed-on: http://review.whamcloud.com/18965
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Frank Zago <fzago@cray.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/utils/lfs.c

index 90cbfa0..60bdab6 100644 (file)
@@ -1224,10 +1224,11 @@ static int lfs_setstripe(int argc, char **argv)
                        /* Save the first error encountered. */
                        if (result2 == 0)
                                result2 = result;
                        /* Save the first error encountered. */
                        if (result2 == 0)
                                result2 = result;
-                       fprintf(stderr,
-                               "error: %s: %s file '%s' failed\n",
+                       fprintf(stderr, "error: %s: %s file '%s' failed: %s\n",
                                argv[0], migrate_mode ? "migrate" : "create",
                                argv[0], migrate_mode ? "migrate" : "create",
-                               fname);
+                               fname,
+                               pool_name_arg != NULL && result == EINVAL ?
+                               "OST not in pool?" : strerror(result));
                        continue;
                }
        }
                        continue;
                }
        }