Messages in this thread | | | Date | Tue, 25 Sep 2012 09:37:43 +1000 | From | NeilBrown <> | Subject | Re: [PATCH] block: makes bio_split support bio without data |
| |
On Mon, 24 Sep 2012 17:35:34 +0900 Namhyung Kim <namhyung@kernel.org> wrote:
> Hi, > > On Mon, 24 Sep 2012 14:56:39 +1000, NeilBrown wrote: > > Hi Jens, > > this patch has been sitting in my -next tree for a little while and I was > > hoping for it to go in for the next merge window. > > It simply allows bio_split() to be used on bios without a payload, such as > > 'discard'. > > Are you happy with it going in though my 'md' tree, or would you rather take > > it though your 'block' tree? > > > > Thanks, > > NeilBrown > > > > > > From: Shaohua Li <shli@fusionio.com> > > Date: Thu, 20 Sep 2012 09:36:03 +1000 > > Subject: [PATCH] block: makes bio_split support bio without data > > > > discard bio hasn't data attached. We hit a BUG_ON with such bio. This makes > > bio_split works for such bio. > > > > Signed-off-by: Shaohua Li <shli@fusionio.com> > > Signed-off-by: NeilBrown <neilb@suse.de> > > > > diff --git a/fs/bio.c b/fs/bio.c > > index 71072ab..dbb7a6c 100644 > > --- a/fs/bio.c > > +++ b/fs/bio.c > > @@ -1501,7 +1501,7 @@ struct bio_pair *bio_split(struct bio *bi, int first_sectors) > > trace_block_split(bdev_get_queue(bi->bi_bdev), bi, > > bi->bi_sector + first_sectors); > > > > - BUG_ON(bi->bi_vcnt != 1); > > + BUG_ON(bi->bi_vcnt != 1 && bi->bi_vcnt != 0); > > Why not > BUG_ON(bi->bi_vcnt > 1); > ?
Either is fine with me. '1' and '0' are the cases that bio_split explicitly supports. '>1' are the cases which will cause problems.
As bi_vnt is unsigned, both conditions should produce exactly the same machine code.
As I see no reason to prefer one over the other, I'm happy to go with what the original author wrote.
Thanks, NeilBrown [unhandled content-type:application/pgp-signature] | |