]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_repair: don't spray correcting imap all by itself
authorDarrick J. Wong <djwong@kernel.org>
Mon, 5 Jun 2023 15:37:39 +0000 (08:37 -0700)
committerCarlos Maiolino <cem@kernel.org>
Wed, 12 Jul 2023 07:15:18 +0000 (09:15 +0200)
In xfs/155, I occasionally see this in the xfs_repair output:

correcting imap
correcting imap
correcting imap
...

This is completely useless, since we don't actually log which inode
prompted this message.  This logic has been here for a really long time,
but ... I can't make heads nor tails of it.  If we're running in verbose
or dry-run mode, then print the inode number, but not if we're running
in fixit mode?

A few lines later, if we're running in verbose dry-run mode, we print
"correcting imap" even though we're not going to write anything.

If we get here, the inode looks like it's in use, but the inode index
says it isn't.  This is a corruption, so either we fix it or we say that
we would fix it.

Fixes: 6c39a3cbda3 ("Don't trash lost+found in phase 4 Merge of master-melb:xfs-cmds:29144a by kenmcd.")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
repair/dino_chunks.c

index 0e09132b0b10cbe335493c28423110b235aa3778..0841e65b184493d4a7935d31e7375ced51af7cc6 100644 (file)
@@ -871,13 +871,11 @@ next_readbuf:
                 */
                if (is_used)  {
                        if (is_inode_free(ino_rec, irec_offset))  {
-                               if (verbose || no_modify)  {
-                                       do_warn(
+                               do_warn(
        _("imap claims in-use inode %" PRIu64 " is free, "),
                                                ino);
-                               }
 
-                               if (verbose || !no_modify)
+                               if (!no_modify)
                                        do_warn(_("correcting imap\n"));
                                else
                                        do_warn(_("would correct imap\n"));