Re: [GIT PULL] Core block IO changes for 3.14

From: Geert Uytterhoeven
Date: Wed Jan 29 2014 - 10:31:17 EST


Hi Jens,

On Wed, Jan 29, 2014 at 4:17 PM, Jens Axboe <axboe@xxxxxxxxx> wrote:
> On Wed, Jan 29 2014, Geert Uytterhoeven wrote:
>> On Tue, Jan 28, 2014 at 11:52 PM, Jens Axboe <axboe@xxxxxxxxx> wrote:
>> >> - Finally the immutable biovec changes from Kent Overstreet. This
>> >> enables some nice future work on making arbitrarily sized bios
>> >> possible, and splitting more efficient. Related fixes to immutable
>> >> bio_vecs:
>> >>
>> >> - dm-cache immutable fixup from Mike Snitzer.
>> >> - btrfs immutable fixup from Muthu Kumar.
>> >>
>> >> - bio-integrity fix from Nic Bellinger, which is also going to stable.
>> >>
>> >>
>> >> Please pull! There will be a bit of merge work for you, but it should be
>> >> fairly straight forward. It's mostly related to changin:
>> >>
>> >> bio->bi_sector -> bio->bi_iter.bi_sector
>> >> bio->bi_size -> bio->bi_iter.bi_size
>> >>
>> >>
>> >> git://git.kernel.dk/linux-block.git for-3.14/core
>> >
>> > BTW, let me know if you want me to merge this. The above has been in
>> > for-next since forever, and Stephen has carried a fix or two for new
>> > merges.
>>
>> arch/xtensa/platforms/iss/simdisk.c:108:23: error: 'struct bio' has no
>> member named 'bi_sector'
>>
>> http://kisskb.ellerman.id.au/kisskb/buildresult/10542666/
>
> Does the below fix it for you? There's an existing bug in there where it
> kunmaps the wrong part (page instead of the address). Not sure that
> matters on xtensa or whether the kmaps are a no-op, but cleaned up none
> the less.

Yes, it does. Thanks!

Acked-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>

> diff --git a/arch/xtensa/platforms/iss/simdisk.c b/arch/xtensa/platforms/iss/simdisk.c
> index 8c6e819cd8ed..48eebacdf5fe 100644
> --- a/arch/xtensa/platforms/iss/simdisk.c
> +++ b/arch/xtensa/platforms/iss/simdisk.c
> @@ -103,18 +103,18 @@ static void simdisk_transfer(struct simdisk *dev, unsigned long sector,
>
> static int simdisk_xfer_bio(struct simdisk *dev, struct bio *bio)
> {
> - int i;
> - struct bio_vec *bvec;
> - sector_t sector = bio->bi_sector;
> + struct bio_vec bvec;
> + struct bvec_iter iter;
> + sector_t sector = bio->bi_iter.bi_sector;
>
> - bio_for_each_segment(bvec, bio, i) {
> - char *buffer = __bio_kmap_atomic(bio, i);
> - unsigned len = bvec->bv_len >> SECTOR_SHIFT;
> + bio_for_each_segment(bvec, bio, iter) {
> + char *buffer = __bio_kmap_atomic(bio, iter);
> + unsigned len = bvec.bv_len >> SECTOR_SHIFT;
>
> simdisk_transfer(dev, sector, len, buffer,
> bio_data_dir(bio) == WRITE);
> sector += len;
> - __bio_kunmap_atomic(bio);
> + __bio_kunmap_atomic(buffer);
> }
> return 0;
> }

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/