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