xfs_repair -nv will exit non zero

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

 



Hey guys,
Using xfs_repair to check the integrity of an xfs filesystem I noticed
it was exiting non-zero with no obvious reason, I started digging
around and think I found the issue

Cloned / built latest source from
git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git

in repair/phase2.c:76

error = xlog_find_tail(log, &head_blk, &tail_blk);
if (error) {
    do_warn(
_("zero_log: cannot find log head/tail (xlog_find_tail=%d)\n"),
                        error);
                if (!no_modify && !zap_log)
                        do_error(_(
"ERROR: The log head and/or tail cannot be discovered. Attempt to mount the\n"
"filesystem to replay the log or use the -L option to destroy the log and\n"
"attempt a repair.\n"));
        } else {
                if (verbose) {
                        do_warn(
        _("zero_log: head block %" PRId64 " tail block %" PRId64 "\n"),
                                head_blk, tail_blk);
                }

the problem here is the do_warn function sets fs_is_dirty = 1, which
will cause main() to return 1. The if statement checks if there was an
error, if not (and verbose is enabled) it still uses do_warn()

I inserted a printf in the do_warn function to track the offending
message setting the fs_is_dirty, and I also inserted a printf directly
after the error = xlog_find_tail() call

DEBUG: ERROR IS 0
zero_log: head block 25408 tail block 25408
DEBUG: WARNING CAUSING FS_IS_DIRTY: zero_log: head block %ld tail block %ld

It exits correctly (0 exit status) when the -v flag is not passed to
the program.

I don't really know C, or git well enough to provide a patch but if
someone can check I'm right then it should be a nice easy fix :)

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



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux