[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