From afaa1854723a06fb1f4218b154afd7408346ce64 Mon Sep 17 00:00:00 2001 From: Thomas Mueller Date: Tue, 3 Apr 2001 00:13:04 +0000 Subject: [PATCH] add-volinfo-filenames-arg-in-namei-environment-20010402 show filenames used by volumes in namei fileserver --- src/vol/vol-info.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/vol/vol-info.c b/src/vol/vol-info.c index 65a26f7..7bbc9c6 100644 --- a/src/vol/vol-info.c +++ b/src/vol/vol-info.c @@ -58,6 +58,9 @@ int DumpVnodes = 0; /* Dump everything, i.e. summary of all vnodes */ int DumpInodeNumber = 0; /* Dump inode numbers with vnodes */ int DumpDate = 0; /* Dump vnode date (server modify date) with vnode */ int InodeTimes = 0; /* Dump some of the dates associated with inodes */ +#if defined(AFS_NAMEI_ENV) +int PrintFileNames = 0; +#endif int online = 0; int dheader=0; int dsizeOnly = 0, totvolsize=0, Vauxsize = 0, Vdiskused = 0, Vvnodesize = 0; @@ -74,8 +77,13 @@ void HandleVolume(struct DiskPartition *partP, char *name); struct DiskPartition *FindCurrentPartition(void); Volume *AttachVolume(struct DiskPartition *dp, char *volname, register struct VolumeHeader *header); +#if defined(AFS_NAMEI_ENV) +void PrintVnode(int offset, VnodeDiskObject *vnode, int vnodeNumber, + Inode ino, Volume* vp); +#else void PrintVnode(int offset, VnodeDiskObject *vnode, int vnodeNumber, Inode ino); +#endif void PrintVnodes(Volume *vp, VnodeClass class); char *date(time_t date) @@ -256,6 +264,12 @@ static int handleit(struct cmd_syndesc *as) orphaned = 1; DumpVnodes = 1; } else +#if defined(AFS_NAMEI_ENV) + if (as->parms[12].items) { + PrintFileNames = 1; + DumpVnodes = 1; + } else +#endif orphaned = 0; DInit(10); @@ -593,6 +607,9 @@ char **argv; cmd_AddParm(ts, "-fixheader", CMD_FLAG, CMD_OPTIONAL, "Try to fix header"); cmd_AddParm(ts, "-saveinodes", CMD_FLAG, CMD_OPTIONAL, "Try to save all inodes"); cmd_AddParm(ts, "-orphaned", CMD_FLAG, CMD_OPTIONAL, "List all dir/files without a parent"); +#if defined(AFS_NAMEI_ENV) + cmd_AddParm(ts, "-filenames", CMD_FLAG, CMD_OPTIONAL, "Print filenames"); +#endif code = cmd_Dispatch(argc, argv); return code; } @@ -769,16 +786,29 @@ void PrintVnodes(Volume *vp, VnodeClass class) ino, nfile, total); } } else { +#if defined(AFS_NAMEI_ENV) + PrintVnode(offset, vnode, + bitNumberToVnodeNumber(vnodeIndex, class), ino, vp); +#else PrintVnode(offset, vnode, bitNumberToVnodeNumber(vnodeIndex, class), ino); +#endif } } STREAM_CLOSE(file); FDH_CLOSE(fdP); } +#if defined(AFS_NAMEI_ENV) +void PrintVnode(int offset, VnodeDiskObject *vnode, int vnodeNumber, Inode ino, Volume *vp) +#else void PrintVnode(int offset, VnodeDiskObject *vnode, int vnodeNumber, Inode ino) +#endif { +#if defined(AFS_NAMEI_ENV) + IHandle_t *ihtmpp; + namei_t filename; +#endif Vvnodesize += vnode->length; if (dsizeOnly) return; if (orphaned && (vnode->length ==0 || vnode->parent || !offset)) return; @@ -788,5 +818,12 @@ void PrintVnode(int offset, VnodeDiskObject *vnode, int vnodeNumber, Inode ino) printf(" inode: %s", PrintInode(NULL, ino)); if (DumpDate) printf(" ServerModTime: %s", date(vnode->serverModifyTime)); +#if defined(AFS_NAMEI_ENV) + if(PrintFileNames) { + IH_INIT(ihtmpp, V_device(vp), V_parentId(vp), ino); + namei_HandleToName(&filename, ihtmpp); + printf(" UFS-Filename: %s",filename.n_path); + } +#endif printf("\n"); } -- 1.9.4