]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commit - block/bio.c
block: Introduce new bio_split()
authorKent Overstreet <kmo@daterainc.com>
Sun, 24 Nov 2013 02:21:01 +0000 (18:21 -0800)
committerKent Overstreet <kmo@daterainc.com>
Sun, 24 Nov 2013 06:33:57 +0000 (22:33 -0800)
commit20d0189b1012a37d2533a87fb451f7852f2418d1
tree5ceaa6cfc0e1f1cec423c6c9f5de72d49f2d63a1
parentee67891bf132612feb7b999ee1f3350b40867cb4
block: Introduce new bio_split()

The new bio_split() can split arbitrary bios - it's not restricted to
single page bios, like the old bio_split() (previously renamed to
bio_pair_split()). It also has different semantics - it doesn't allocate
a struct bio_pair, leaving it up to the caller to handle completions.

Then convert the existing bio_pair_split() users to the new bio_split()
- and also nvme, which was open coding bio splitting.

(We have to take that BUG_ON() out of bio_integrity_trim() because this
bio_split() needs to use it, and there's no reason it has to be used on
bios marked as cloned; BIO_CLONED doesn't seem to have clearly
documented semantics anyways.)

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: Matthew Wilcox <matthew.r.wilcox@intel.com>
Cc: Keith Busch <keith.busch@intel.com>
Cc: Vishal Verma <vishal.l.verma@intel.com>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Neil Brown <neilb@suse.de>
drivers/block/nvme-core.c
drivers/block/pktcdvd.c
drivers/md/bcache/bcache.h
drivers/md/bcache/io.c
drivers/md/bcache/request.c
drivers/md/linear.c
drivers/md/raid0.c
drivers/md/raid10.c
fs/bio.c
include/linux/bio.h