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

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

 




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".

> 
> 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 Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux