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

Mike Snitzer snitzer at redhat.com
Wed Apr 29 15:22:53 UTC 2020


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);




More information about the dm-devel mailing list