block: Fix cloning of discard/write same bios
authorKent Overstreet <kmo@daterainc.com>
Tue, 11 Feb 2014 01:45:50 +0000 (17:45 -0800)
committerJens Axboe <axboe@fb.com>
Tue, 11 Feb 2014 15:40:45 +0000 (08:40 -0700)
commit8423ae3d7a3cfe084865262cfaeba1359d405182
treee8e6f9c31f5622e66ff176b600cf3b3c951eb4d8
parent9d4cb8e3a5b448d802155688bf2d50ac1b9e1a51
block: Fix cloning of discard/write same bios

Immutable biovecs changed the way bio segments are treated in such a way that
bio_for_each_segment() cannot now do what we want for discard/write same bios,
since bi_size means something completely different for them.

Fortunately discard and write same bios never have more than a single biovec, so
bio_for_each_segment() is unnecessary and not terribly meaningful for them, but
we still have to special case them in a few places.

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
Tested-by: Richard W.M. Jones <rjones@redhat.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
fs/bio.c
include/linux/bio.h