Re: [PATCH 26/27] block: Add an explicit bio flag for bios that owntheir bvec

From: Kent Overstreet
Date: Tue Mar 26 2013 - 15:42:45 EST


On Tue, Mar 26, 2013 at 11:11:06AM -0700, Andrew Morton wrote:
> On Tue, 19 Feb 2013 16:22:40 -0800 Kent Overstreet <koverstreet@xxxxxxxxxx> wrote:
>
> > This is for the new bio splitting code. When we split a bio, if the
> > split occured on a bvec boundry we reuse the bvec for the new bio. But
> > that means bio_free() can't free it, hence the explicit flag.
> >
> > --- a/include/linux/blk_types.h
> > +++ b/include/linux/blk_types.h
> > @@ -117,6 +117,7 @@ struct bio {
> > * BIO_POOL_IDX()
> > */
> > #define BIO_RESET_BITS 12
> > +#define BIO_OWNS_VEC 12 /* bio_free() should free bvec */
> >
> > #define bio_flagged(bio, flag) ((bio)->bi_flags & (1 << (flag)))
>
> The BIO_OWNS_VEC definition seems to be in the wrong place - it should
> be grouped with the "bio flags" group above?

No - BIO_OWNS_VEC is set by bio_alloc_bioset() and is used by bio_free()
to determine if it should free the biovec, so it's something we don't
want cleared if driver code uses bio_reset().
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/