On Fri, Sep 14, 2012 at 07:28:28PM +0100, Alasdair G Kergon wrote: > On Thu, Sep 06, 2012 at 03:34:55PM -0700, Kent Overstreet wrote: > > With the old code, when you allocate a bio from a bio pool you have to > > implement your own destructor that knows how to find the bio pool the > > bio was originally allocated from. > > > > This adds a new field to struct bio (bi_pool) and changes > > bio_alloc_bioset() to use it. This makes various bio destructors > > unnecessary, so they're then deleted. > > > > v6: Explain the temporary if statement in bio_put > > This patch also silently reverts > commit 4d7b38b7d944a79da3793b6c92d38682f3905ac9 > "dm: clear bi_end_io on remapping failure" > > Why? > > If it's intentional, please explain it in your patch header and > copy Hannes to reconsider the matter. Never noticed that was introduced in its own patch until you pointed it out. That isn't a very good patch - it says it's clearing bi_end_io as a precaution, but as a precaution to what? As far as I can tell, it was never necessary. The bio is about to be freed - there shouldn't be any other references on it (__bio_map() is called on freshly allocated bios, and bio_get() is never called in dm.c) Nothing else should've been looking at bi_end_io, certainly the destructor didn't. Now that there's no destructor, it makes even less sense to have it - after that bio_put() that bio isn't being touched by dm code anymore. -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel