]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
block: make bio_inc_remaining() interface accessible again
authorMike Snitzer <snitzer@redhat.com>
Thu, 5 May 2016 15:54:22 +0000 (11:54 -0400)
committerJens Axboe <axboe@fb.com>
Thu, 5 May 2016 19:03:29 +0000 (13:03 -0600)
commit0ef5a50c1658d4d96a44f145bcb92ff3310c75b1
tree19e029301415518262638966d5125ccd1470d39a
parentbbd848e0fade51ae51dab86a0683069cef89953f
block: make bio_inc_remaining() interface accessible again

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().

DM thinp foolishly duplicated bio_inc_remaining(), local to dm-thin.c as
__bio_inc_remaining(), so re-exporting bio_inc_remaining() allows us to
put an end to that foolishness.

All said, bio_inc_remaining() should really only be used in conjunction
with bio_chain().  It isn't intended for generic bio reference counting.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Acked-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/bio.c
include/linux/bio.h