Message ID | dff475cd16489080bb229af9bb45c0d67480b8be.1588172814.git.heinzm@redhat.com (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | Mike Snitzer |
Headers | show |
Series | dm ebs: fix bio->bi_status assignment | expand |
On Wed, Apr 29 2020 at 11:07am -0400, heinzm@redhat.com <heinzm@redhat.com> wrote: > From: Heinz Mauelshagen <heinzm@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@oracle.com> > Signed-off-by: Heinz Mauelshagen <heinzm@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); -- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel
On 4/29/20 5:22 PM, Mike Snitzer wrote: > On Wed, Apr 29 2020 at 11:07am -0400, > heinzm@redhat.com <heinzm@redhat.com> wrote: > >> From: Heinz Mauelshagen <heinzm@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@oracle.com> >> Signed-off-by: Heinz Mauelshagen <heinzm@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 -- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel
On 4/29/20 5:22 PM, Mike Snitzer wrote: > On Wed, Apr 29 2020 at 11:07am -0400, > heinzm@redhat.com <heinzm@redhat.com> wrote: > >> From: Heinz Mauelshagen <heinzm@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@oracle.com> >> Signed-off-by: Heinz Mauelshagen <heinzm@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. Heinz > -- > dm-devel mailing list > dm-devel@redhat.com > https://www.redhat.com/mailman/listinfo/dm-devel -- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel
On Wed, Apr 29 2020 at 3:40pm -0400, Heinz Mauelshagen <heinzm@redhat.com> wrote: > On 4/29/20 5:22 PM, Mike Snitzer wrote: > >On Wed, Apr 29 2020 at 11:07am -0400, > >heinzm@redhat.com <heinzm@redhat.com> wrote: > > > >>From: Heinz Mauelshagen <heinzm@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@oracle.com> > >>Signed-off-by: Heinz Mauelshagen <heinzm@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 -- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel
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; } /*