[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