fs getfid output changed for consistency with Windows implementation
authorPhillip Moore <w.phillip.moore@gmail.com>
Tue, 19 Oct 2010 15:23:46 +0000 (11:23 -0400)
committerDerrick Brashear <shadow@dementia.org>
Fri, 29 Oct 2010 19:17:00 +0000 (12:17 -0700)
This patch removes the redundant volume ID from the output of fs
getfid, and replaces it with the cell name, which is what the Windows
implementation provides.

Change-Id: I7ce009733a204eeb744683d9c4355c436e9e07aa
Reviewed-on: http://gerrit.openafs.org/3007
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

src/venus/fs.c

index ae3ceb0..2c3d690 100644 (file)
@@ -4254,6 +4254,7 @@ GetFidCmd(struct cmd_syndesc *as, void *arock)
 
     afs_int32 code;
     int error = 0;
+    char cell[MAXCELLCHARS];
 
     for (ti = as->parms[0].items; ti; ti = ti->next) {
         struct VenusFid vfid;
@@ -4269,9 +4270,19 @@ GetFidCmd(struct cmd_syndesc *as, void *arock)
             continue;
         }
 
-        printf("File %s (%u.%u.%u) contained in volume %u\n",
+        code = GetCell(ti->data, cell);
+        if (code) {
+           if (errno == ENOENT)
+               fprintf(stderr, "%s: no such cell as '%s'\n", pn, ti->data);
+           else
+               Die(errno, ti->data);
+           error = 1;
+           continue;
+        }
+
+        printf("File %s (%u.%u.%u) located in cell %s\n",
                ti->data, vfid.Fid.Volume, vfid.Fid.Vnode, vfid.Fid.Unique,
-               vfid.Fid.Volume);
+               cell);
 
     }