[PATCH] debugfs : Fix printing of pathnames with ncheck if files have hardlinks in same directory.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ted,

Commit 03206bd introduced regression in ncheck while printing all the
pathnames of an inode. For files which have hardlink in the same
directory we will print the same pathname instead of all possible like
below :-

debugfs:  ncheck 14
Inode	Pathname
14	/a/f1
14	/a/f1
14	/b/f3

where it should have printed

debugfs:  ncheck 14
Inode   Pathname
14      /a/f1
14      /a/f2
14      /b/f3

Below patch fixes it.

Signed-off-by : Manish Katiyar <mkatiyar@xxxxxxxxx>

---
 debugfs/ncheck.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/debugfs/ncheck.c b/debugfs/ncheck.c
index 22fa29f..c850739 100644
--- a/debugfs/ncheck.c
+++ b/debugfs/ncheck.c
@@ -36,14 +36,16 @@ static int ncheck_proc(struct ext2_dir_entry *dirent,
 	int	i;
 	char	*pathname;
 	errcode_t	retval;
+	static ext2_ino_t parent;

 	iw->position++;
+	if (iw->position == 2)
+		parent = dirent->inode;
 	if (iw->position <= 2)
 		return 0;
 	for (i=0; i < iw->num_inodes; i++) {
 		if (iw->iarray[i] == dirent->inode) {
-			retval = ext2fs_get_pathname(current_fs, iw->parent,
-						     iw->iarray[i],
+			retval = ext2fs_get_pathname(current_fs, parent, iw->parent,
 						     &pathname);
 			if (retval)
 				com_err("ncheck", retval,
@@ -51,7 +53,7 @@ static int ncheck_proc(struct ext2_dir_entry *dirent,
 					"inode %d (%d)", iw->parent,
 					iw->iarray[i]);
 			else
-				printf("%u\t%s\n", iw->iarray[i], pathname);
+				printf("%u\t%s/%s\n", iw->iarray[i], pathname, dirent->name);
 		}
 	}
 	if (!iw->inodes_left)
-- 
1.5.4.3


Thanks -
Manish
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux