All of lore.kernel.org
 help / color / mirror / Atom feed
From: Xiao Yang <yangx.jy@cn.fujitsu.com>
To: Eric Sandeen <sandeen@sandeen.net>
Cc: darrick.wong@oracle.com, linux-xfs@vger.kernel.org
Subject: Re: [PATCH] xfs_repair: Ensure just xfs_repair without -n can return a status code of 2
Date: Wed, 28 Feb 2018 09:32:01 +0800	[thread overview]
Message-ID: <5A960691.9000901@cn.fujitsu.com> (raw)
In-Reply-To: <b311ddb9-e996-9e4b-f7f1-d0d45b8f782a@sandeen.net>

On 2018/02/27 22:21, Eric Sandeen wrote:
> On 2/26/18 11:50 PM, Xiao Yang wrote:
>> Since commit b04647edea32, xfs_repair -L could't succeed to clear a dirty log
>> and returned a status of 2.  Besides, xfs_repair -n returned a status of 2
>> instead of 1 if a dirty log was detected.  I think just xfs_repair without -n
>> should return a status code of 2 when getting a dirty log, so fix it.  We can
>> expose this issue by xfstests case xfs/098.
>>
>> Fixes:'commit b04647edea32 ("xfs_repair: exit with status 2 if log dirtiness is unknown")'
>>
>> Signed-off-by: Xiao Yang<yangx.jy@cn.fujitsu.com>
> Whoops, yes this was a silly mistake, my fault, and definitely a bug -
> and your fix is obviously correct.
>
> However, your description isn't accurate; the bug exists only when
> xlog_find_tail() fails to find the head or the tail, which
> is why this went undiscovered for so long.  xfs_repair -L certainly
> can clear a dirty log today, it only fails if xlog_find_tail fails.
>
> The core bug here is missing braces; the result is that an unparseable
> log always exits with exit(2), even if we've asked for -n or -L which
> should proceed.
>
> Can you resend this patch with a proper summary and a description
> which more closely matches the actual bug?
Hi Eric,

Thanks for your comment.
I will resend this patch as you suggested.

Thanks,
Xiao Yang
> Thanks,
> -Eric
>
>> ---
>>   repair/phase2.c | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/repair/phase2.c b/repair/phase2.c
>> index 992e997..c124882 100644
>> --- a/repair/phase2.c
>> +++ b/repair/phase2.c
>> @@ -78,12 +78,13 @@ zero_log(
>>   		do_warn(
>>   		_("zero_log: cannot find log head/tail (xlog_find_tail=%d)\n"),
>>   			error);
>> -		if (!no_modify&&  !zap_log)
>> +		if (!no_modify&&  !zap_log) {
>>   			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_log(
>>
>
> .
>




  reply	other threads:[~2018-02-28  1:32 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-27  5:50 [PATCH] xfs_repair: Ensure just xfs_repair without -n can return a status code of 2 Xiao Yang
2018-02-27 14:21 ` Eric Sandeen
2018-02-28  1:32   ` Xiao Yang [this message]
2018-02-28  3:41   ` [PATCH v2] xfs_repair: Add missing braces Xiao Yang
2018-02-28  3:57     ` Eric Sandeen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5A960691.9000901@cn.fujitsu.com \
    --to=yangx.jy@cn.fujitsu.com \
    --cc=darrick.wong@oracle.com \
    --cc=linux-xfs@vger.kernel.org \
    --cc=sandeen@sandeen.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.