[PATCH 2/2] repair: fix messages from set_nlinks

Christoph Hellwig
2012-02-28T17:42:53Z

Link counts are unsigned and need to be printed as such. Also only
print the varning about upgrading the inode version if the inode was
version 1 before.

Signed-off-by: Christoph Hellwig <hch@lst.de>

Index: xfsprogs-dev/repair/phase7.c
===================================================================
--- xfsprogs-dev.orig/repair/phase7.c 2012-02-28 12:45:52.627849317 +0100
+++ xfsprogs-dev/repair/phase7.c 2012-02-28 14:03:20.475986024 +0100
@@ -40,19 +40,20 @@ set_nlinks(

if (!no_modify) {
*dirty = 1;
- do_warn(_("resetting inode %" PRIu64 " nlinks from %d to %d\n"),
+ do_warn(_("resetting inode %" PRIu64 " nlinks from %u to %u\n"),
ino, dinoc->di_nlink, nrefs);

- if (nrefs > XFS_MAXLINK_1) {
+ if (dinoc->di_version == 1 && nrefs > XFS_MAXLINK_1) {
ASSERT(fs_inode_nlink);
do_warn(
-_("nlinks %d will overflow v1 ino, ino %" PRIu64 " will be converted to version 2\n"),
+_("nlinks %u will overflow v1 ino, ino %" PRIu64 " will be converted to version 2\n"),
nrefs, ino);

}
dinoc->di_nlink = nrefs;
} else {
- do_warn(_("would have reset inode %" PRIu64 " nlinks from %d to %d\n"),
+ do_warn(
+_("would have reset inode %" PRIu64 " nlinks from %u to %u\n"),
ino, dinoc->di_nlink, nrefs);
}
}