Whamcloud - gitweb
LU-14468 utils: improve 'lfs rmfid' error messages 27/41727/2
authorJohn L. Hammond <jhammond@whamcloud.com>
Tue, 23 Feb 2021 15:40:08 +0000 (09:40 -0600)
committerOleg Drokin <green@whamcloud.com>
Sat, 6 Mar 2021 02:35:58 +0000 (02:35 +0000)
In lfs_rmfid_and_show_errors(), convert the error messages printed by
'lfs rmfid' from the format
  rmfid([0x20001a9f5:0x159:0x0]): rc = -39
to
  lfs rmfid: cannot remove [0x20001a9f5:0x155:0x0]: Directory not empty

Simplify the logic and swap rc and rc2 to follow conventions.

Signed-off-by: John L. Hammond <jhammond@whamcloud.com>
Change-Id: Iccd9e1054ed8842fc4f65dd601077cfdeaa1320c
Reviewed-on: https://review.whamcloud.com/41727
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/utils/lfs.c

index 3dfa32d..1df070a 100644 (file)
@@ -8664,28 +8664,29 @@ static int lfs_path2fid(int argc, char **argv)
 
 static int lfs_rmfid_and_show_errors(const char *device, struct fid_array *fa)
 {
 
 static int lfs_rmfid_and_show_errors(const char *device, struct fid_array *fa)
 {
-       int rc, rc2 = 0, k;
+       int rc, rc2, k;
 
        rc = llapi_rmfid(device, fa);
 
        rc = llapi_rmfid(device, fa);
-       if (rc) {
-               fprintf(stderr, "rmfid(): rc = %d\n", rc);
+       if (rc < 0) {
+               fprintf(stderr, "%s rmfid: cannot remove FIDs: %s\n",
+                       progname, strerror(-rc));
                return rc;
        }
 
        for (k = 0; k < fa->fa_nr; k++) {
                return rc;
        }
 
        for (k = 0; k < fa->fa_nr; k++) {
-               rc = (__s32)fa->fa_fids[k].f_ver;
-               if (!IS_ERR_VALUE(rc))
-                       continue;
-               if (!rc2 && rc)
-                       rc2 = rc;
-               if (!rc)
+               rc2 = (__s32)fa->fa_fids[k].f_ver;
+               if (!IS_ERR_VALUE(rc2))
                        continue;
                        continue;
+
+               if (rc == 0)
+                       rc = rc2;
+
                fa->fa_fids[k].f_ver = 0;
                fa->fa_fids[k].f_ver = 0;
-               fprintf(stderr, "rmfid("DFID"): rc = %d\n",
-                       PFID(&fa->fa_fids[k]), rc);
+               fprintf(stderr, "%s rmfid: cannot remove "DFID": %s\n",
+                       progname, PFID(&fa->fa_fids[k]), strerror(-rc2));
        }
 
        }
 
-       return rc2;
+       return rc;
 }
 
 static int lfs_rmfid(int argc, char **argv)
 }
 
 static int lfs_rmfid(int argc, char **argv)