On Thu, May 05, 2016 at 11:54:22AM -0400, Mike Snitzer wrote: > Commit 326e1dbb57 ("block: remove management of bi_remaining when > restoring original bi_end_io") made bio_inc_remaining() private to bio.c > because the only use-case that made sense was confined to the > bio_chain() interface. > > Since that time DM thinp went on to use bio_chain() in its relatively > complex implementation of async discard support. That implementation, > even when converted over to use the new async __blkdev_issue_discard() > interface, depends on deferred completion of the original discard bio -- > which is most appropriately implemented using bio_inc_remaining(). Can you explain that code flow to me? I still fail to why exactly dm-thinp (and only dm-thinp) needs this. Maybe start by pointing me to the additional bio_endio that pairs with the bio_inc_remaining call. > All said, bio_inc_remaining() should really only be used in conjunction > with bio_chain(). It isn't intended for generic bio reference counting. It's obviously used outside bio_chain in dm-thinp, so this sentence doesn't make too much sense to me. -- To unsubscribe from this list: send the line "unsubscribe linux-block" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html