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

Mike Snitzer snitzer at redhat.com
Wed Apr 29 23:04:22 UTC 2020


On Wed, Apr 29 2020 at  3:40pm -0400,
Heinz Mauelshagen <heinzm at redhat.com> wrote:

> 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);
> 
> 
> Also, using errno_to_blk_status() doesn't need the conditional so
> you may mind to remove it.

Rather avoid the jump implied by the call (figures another place where
there is a conditional call to errno_to_blk_status is
dm-bufio.c:use_dmio).

Anyway, doesn't much matter either way, just going to leave it as
staged.

Thanks,
Mike




More information about the dm-devel mailing list