[Cluster-devel] [PATCH RESEND] gfs2: Return more useful errors from gfs2_rgrp_send_discards()

Andrew Price anprice at redhat.com
Fri Apr 29 14:08:36 UTC 2022


On 19/04/2022 16:49, Andrew Price wrote:
> On 05/04/2022 13:08, Andrew Price wrote:
>> The bug that 27ca8273f ("gfs2: Make sure FITRIM minlen is rounded up to
>> fs block size") fixes was a little confusing as the user saw
>> "Input/output error" which masked the -EINVAL that sb_issue_discard()
>> returned.
>>
>> sb_issue_discard() can fail for various reasons, so we should return its
>> return value from gfs2_rgrp_send_discards() to avoid all errors being
>> reported as IO errors.
>>
>> This improves error reporting for FITRIM and makes no difference to the
>> -o discard code path because the return value from
>> gfs2_rgrp_send_discards() gets thrown away in that case (and the option
>> switches off). Presumably that's why it was ok to just return -EIO in
>> the past, before FITRIM was implemented.
>>
>> Tested with xfstests.
> 
> Can I get a thumbs-up or thumbs-down for this patch? It's pretty 
> straightforward. I just don't want it to get forgotten about.
> 
> Cheers,
> Andy

Please could you take this patch?

Cheers,
Andy

>> Signed-off-by: Andrew Price <anprice at redhat.com>
>> ---
>>
>> I don't see this in for-next yet so I've updated the commit log to 
>> include more
>> details.
>>
>>   fs/gfs2/rgrp.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
>> index 801ad9f4f2be..886343cc05ab 100644
>> --- a/fs/gfs2/rgrp.c
>> +++ b/fs/gfs2/rgrp.c
>> @@ -1315,7 +1315,7 @@ int gfs2_rgrp_send_discards(struct gfs2_sbd 
>> *sdp, u64 offset,
>>       u64 blk;
>>       sector_t start = 0;
>>       sector_t nr_blks = 0;
>> -    int rv;
>> +    int rv = -EIO;
>>       unsigned int x;
>>       u32 trimmed = 0;
>>       u8 diff;
>> @@ -1371,7 +1371,7 @@ int gfs2_rgrp_send_discards(struct gfs2_sbd 
>> *sdp, u64 offset,
>>       if (sdp->sd_args.ar_discard)
>>           fs_warn(sdp, "error %d on discard request, turning discards 
>> off for this filesystem\n", rv);
>>       sdp->sd_args.ar_discard = 0;
>> -    return -EIO;
>> +    return rv;
>>   }
>>   /**
> 



More information about the Cluster-devel mailing list