Message ID | 4c59d0b7-bf53-ca58-1bcf-b95d1c9c44dc@redhat.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Mon, Sep 12, 2016 at 07:46:05AM -0500, Eric Sandeen wrote: > This new case is mostly like the known dirty log case; the log > is corrupt, dirtiness cannot be determined, and a mount/umount > cycle or an xfs_repair -L is required. > > So exit with status 2 here as well. > > Signed-off-by: Eric Sandeen <sandeen@redhat.com> > --- > > diff --git a/repair/phase2.c b/repair/phase2.c > index e21ffa6..5964244 100644 > --- a/repair/phase2.c > +++ b/repair/phase2.c > @@ -79,10 +79,11 @@ zero_log( > _("zero_log: cannot find log head/tail (xlog_find_tail=%d)\n"), > error); > if (!no_modify && !zap_log) > - do_error(_( > + do_warn(_( > "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")); > + exit(2); HaHa, I've talked about this problem with "Xiao Yang" in: http://www.spinics.net/lists/fstests/msg03888.html I talked him either change the _repair_scratch_fs function to check return status 1, or change xfs_repair to make it return status 2. I don't know if it's necessary to change the xfs_repair exit status. Is there some rules to document that? I'm trying to change the xfs_repair manpage: http://www.spinics.net/lists/xfs/msg42346.html Would you please help to check that? Any suggestions about that? I need to change my patch if this patch will be merged. Thanks, Zorro > } else { > if (verbose) { > do_warn( > > -- > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Sep 12, 2016 at 07:46:05AM -0500, Eric Sandeen wrote: > This new case is mostly like the known dirty log case; the log > is corrupt, dirtiness cannot be determined, and a mount/umount > cycle or an xfs_repair -L is required. > > So exit with status 2 here as well. > > Signed-off-by: Eric Sandeen <sandeen@redhat.com> > --- > > diff --git a/repair/phase2.c b/repair/phase2.c > index e21ffa6..5964244 100644 > --- a/repair/phase2.c > +++ b/repair/phase2.c > @@ -79,10 +79,11 @@ zero_log( > _("zero_log: cannot find log head/tail (xlog_find_tail=%d)\n"), > error); > if (!no_modify && !zap_log) > - do_error(_( > + do_warn(_( > "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")); > + exit(2); I think it makes sense for me. Exit 2 means log needs to be replayed or cleared. If we meet xfs_repair return 2, we can do the same steps to deal with that: 1. try to mount 2. If mount fail, try xfs_repair -L So I agree with this patch: Reviewed-by: Zorro Lang <zlang@redhat.com> > } else { > if (verbose) { > do_warn( > > -- > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/repair/phase2.c b/repair/phase2.c index e21ffa6..5964244 100644 --- a/repair/phase2.c +++ b/repair/phase2.c @@ -79,10 +79,11 @@ zero_log( _("zero_log: cannot find log head/tail (xlog_find_tail=%d)\n"), error); if (!no_modify && !zap_log) - do_error(_( + do_warn(_( "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")); + exit(2); } else { if (verbose) { do_warn(
This new case is mostly like the known dirty log case; the log is corrupt, dirtiness cannot be determined, and a mount/umount cycle or an xfs_repair -L is required. So exit with status 2 here as well. Signed-off-by: Eric Sandeen <sandeen@redhat.com> ---