[dm-devel] dm ebs: fix bio->bi_status assignment

Heinz Mauelshagen heinzm at redhat.com
Wed Apr 29 19:39:10 UTC 2020


On 4/29/20 5:22 PM, Mike Snitzer wrote:
> On Wed, Apr 29 2020 at 11:07am -0400,
> heinzm at redhat.com <heinzm at redhat.com> wrote:
>
>> From: Heinz Mauelshagen <heinzm at redhat.com>
>>
>> Assign blk_status_t to bi_status properly in __ebs_process_bios()
>> on error (flaw found by static checker).
>>
>> Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
>> Signed-off-by: Heinz Mauelshagen <heinzm at redhat.com>
>> ---
>>   drivers/md/dm-ebs-target.c | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/md/dm-ebs-target.c b/drivers/md/dm-ebs-target.c
>> index 97703c31771f..c9c66d6b1e56 100644
>> --- a/drivers/md/dm-ebs-target.c
>> +++ b/drivers/md/dm-ebs-target.c
>> @@ -210,7 +210,8 @@ static void __ebs_process_bios(struct work_struct *ws)
>>   			r = __ebs_discard_bio(ec, bio);
>>   		}
>>   
>> -		bio->bi_status = r;
>> +		if (r < 0)
>> +			bio->bi_status = BLK_STS_IOERR;
>>   	}
>>   
>>   	/*
>> -- 
>> 2.25.4
>>
> Proper way is to use errno_to_blk_status().  I've folded in:
>
> -		bio->bi_status = r;
> +		if (r < 0)
> +			bio->bi_status = errno_to_blk_status(r);

Thanks, that'll map to both possible values (BLK_STS_IOERR and BLK_STS_RESOURCE here),
though I/O error would've been sufficient here.

Heinz




More information about the dm-devel mailing list