Re: [PATCH 2/2] btrfs: Add error string for EUCLEAN

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

 




On 2019/4/6 下午2:20, Nikolay Borisov wrote:
>
>
> On 6.04.19 г. 8:05 ч., Qu Wenruo wrote:
>>
>>
>> On 2019/4/6 下午12:50, Darrick J. Wong wrote:
>>> On Sat, Apr 06, 2019 at 11:14:26AM +0800, Qu Wenruo wrote:
>>>> Since we're going to support write time tree checker, it's possible that
>>>> transaction get aborted due to tree-checker, also due to new
>>>> BLK_STS_SELFTEST bit, we can distinguish real EIO error and EUCLEAN
>>>> error.
>>>>
>>>> Now add error string for EUCLEAN too.
>>>>
>>>> Signed-off-by: Qu Wenruo <wqu@xxxxxxxx>
>>>> ---
>>>>  fs/btrfs/super.c | 3 +++
>>>>  1 file changed, 3 insertions(+)
>>>>
>>>> diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
>>>> index 120e4340792a..a4cbbd7861d3 100644
>>>> --- a/fs/btrfs/super.c
>>>> +++ b/fs/btrfs/super.c
>>>> @@ -86,6 +86,9 @@ const char *btrfs_decode_error(int errno)
>>>>  	case -ENOENT:
>>>>  		errstr = "No such entry";
>>>>  		break;
>>>> +	case -EUCLEAN:
>>>> +		errstr = "Selftest failure";
>>>> +		break;
>>>
>>> EUCLEAN usually spits out "Structure needs cleaning" in userspace (and
>>> ext4 & xfs have been using it for years to complain about corrupt data),
>>> so why diverge here?
>>
>> Because the original "structure needs cleaning" doesn't really show the
>> meaning we're using.
>
> On the contrary, structure needs cleaning means the filesystem has
> detected a consistency error. How that detection has happened shouldn't
> burden the user, the important fact is it has. Selftest is somewhat
> cryptic, I'd suggest at least "verification error" or just go with
> canonical "Structure needs cleaning".

OK, I'll go that way.

Thanks for the hint,
Qu

>
>>
>> We really means, something wrong happened, thus I prefer something like
>> selftest failure.
>>
>> And, the idea of adding -EUCLEAN, is to replace the original "unknown"
>> output, if you're sticking with the original error string, we still need
>> that branch.
>>
>>>
>>> Wait... does "tree-checker" mean online metadata checking, and 'selftest
>>> failure' is what gets spit out when it finds some metadata it doesn't
>>> like?
>>
>> Yep.
>>
>> Thanks,
>> Qu
>>
>>>
>>> --D
>>>
>>>>  	}
>>>>
>>>>  	return errstr;
>>>> --
>>>> 2.21.0
>>>>
>>




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux