diff options
author | Mike Christie <mchristi@redhat.com> | 2016-06-05 15:31:48 -0400 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2016-06-07 15:41:38 -0400 |
commit | 95fe6c1a209ef89d9f94dd04a0ad72be1487d5d5 (patch) | |
tree | 4f0b5eabb7d38efe2f17e61207c628a1de8bb6ea | |
parent | c8d93247f1d0cf478222a7f4fc37d453d6193d04 (diff) |
block, fs, mm, drivers: use bio set/get op accessors
This patch converts the simple bi_rw use cases in the block,
drivers, mm and fs code to set/get the bio operation using
bio_set_op_attrs/bio_op
These should be simple one or two liner cases, so I just did them
in one patch. The next patches handle the more complicated
cases in a module per patch.
Signed-off-by: Mike Christie <mchristi@redhat.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
-rw-r--r-- | block/bio.c | 13 | ||||
-rw-r--r-- | block/blk-core.c | 6 | ||||
-rw-r--r-- | block/blk-flush.c | 2 | ||||
-rw-r--r-- | block/blk-lib.c | 4 | ||||
-rw-r--r-- | block/blk-map.c | 2 | ||||
-rw-r--r-- | block/blk-merge.c | 12 | ||||
-rw-r--r-- | drivers/block/brd.c | 2 | ||||
-rw-r--r-- | drivers/block/floppy.c | 2 | ||||
-rw-r--r-- | drivers/block/pktcdvd.c | 4 | ||||
-rw-r--r-- | drivers/block/rsxx/dma.c | 2 | ||||
-rw-r--r-- | drivers/block/zram/zram_drv.c | 2 | ||||
-rw-r--r-- | drivers/lightnvm/rrpc.c | 6 | ||||
-rw-r--r-- | drivers/scsi/osd/osd_initiator.c | 8 | ||||
-rw-r--r-- | drivers/staging/lustre/lustre/llite/lloop.c | 6 | ||||
-rw-r--r-- | fs/crypto/crypto.c | 2 | ||||
-rw-r--r-- | fs/exofs/ore.c | 2 | ||||
-rw-r--r-- | fs/ext4/page-io.c | 6 | ||||
-rw-r--r-- | fs/ext4/readpage.c | 2 | ||||
-rw-r--r-- | fs/jfs/jfs_logmgr.c | 4 | ||||
-rw-r--r-- | fs/jfs/jfs_metapage.c | 4 | ||||
-rw-r--r-- | fs/logfs/dev_bdev.c | 12 | ||||
-rw-r--r-- | fs/nfs/blocklayout/blocklayout.c | 4 | ||||
-rw-r--r-- | include/linux/bio.h | 15 | ||||
-rw-r--r-- | mm/page_io.c | 4 |
24 files changed, 65 insertions, 61 deletions
diff --git a/block/bio.c b/block/bio.c index fc779eba0b95..848cd351513b 100644 --- a/block/bio.c +++ b/block/bio.c | |||
@@ -656,16 +656,15 @@ struct bio *bio_clone_bioset(struct bio *bio_src, gfp_t gfp_mask, | |||
656 | bio = bio_alloc_bioset(gfp_mask, bio_segments(bio_src), bs); | 656 | bio = bio_alloc_bioset(gfp_mask, bio_segments(bio_src), bs); |
657 | if (!bio) | 657 | if (!bio) |
658 | return NULL; | 658 | return NULL; |
659 | |||
660 | bio->bi_bdev = bio_src->bi_bdev; | 659 | bio->bi_bdev = bio_src->bi_bdev; |
661 | bio->bi_rw = bio_src->bi_rw; | 660 | bio->bi_rw = bio_src->bi_rw; |
662 | bio->bi_iter.bi_sector = bio_src->bi_iter.bi_sector; | 661 | bio->bi_iter.bi_sector = bio_src->bi_iter.bi_sector; |
663 | bio->bi_iter.bi_size = bio_src->bi_iter.bi_size; | 662 | bio->bi_iter.bi_size = bio_src->bi_iter.bi_size; |
664 | 663 | ||
665 | if (bio->bi_rw & REQ_DISCARD) | 664 | if (bio_op(bio) == REQ_OP_DISCARD) |
666 | goto integrity_clone; | 665 | goto integrity_clone; |
667 | 666 | ||
668 | if (bio->bi_rw & REQ_WRITE_SAME) { | 667 | if (bio_op(bio) == REQ_OP_WRITE_SAME) { |
669 | bio->bi_io_vec[bio->bi_vcnt++] = bio_src->bi_io_vec[0]; | 668 | bio->bi_io_vec[bio->bi_vcnt++] = bio_src->bi_io_vec[0]; |
670 | goto integrity_clone; | 669 | goto integrity_clone; |
671 | } | 670 | } |
@@ -1166,7 +1165,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q, | |||
1166 | goto out_bmd; | 1165 | goto out_bmd; |
1167 | 1166 | ||
1168 | if (iter->type & WRITE) | 1167 | if (iter->type & WRITE) |
1169 | bio->bi_rw |= REQ_WRITE; | 1168 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
1170 | 1169 | ||
1171 | ret = 0; | 1170 | ret = 0; |
1172 | 1171 | ||
@@ -1336,7 +1335,7 @@ struct bio *bio_map_user_iov(struct request_queue *q, | |||
1336 | * set data direction, and check if mapped pages need bouncing | 1335 | * set data direction, and check if mapped pages need bouncing |
1337 | */ | 1336 | */ |
1338 | if (iter->type & WRITE) | 1337 | if (iter->type & WRITE) |
1339 | bio->bi_rw |= REQ_WRITE; | 1338 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
1340 | 1339 | ||
1341 | bio_set_flag(bio, BIO_USER_MAPPED); | 1340 | bio_set_flag(bio, BIO_USER_MAPPED); |
1342 | 1341 | ||
@@ -1529,7 +1528,7 @@ struct bio *bio_copy_kern(struct request_queue *q, void *data, unsigned int len, | |||
1529 | bio->bi_private = data; | 1528 | bio->bi_private = data; |
1530 | } else { | 1529 | } else { |
1531 | bio->bi_end_io = bio_copy_kern_endio; | 1530 | bio->bi_end_io = bio_copy_kern_endio; |
1532 | bio->bi_rw |= REQ_WRITE; | 1531 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
1533 | } | 1532 | } |
1534 | 1533 | ||
1535 | return bio; | 1534 | return bio; |
@@ -1784,7 +1783,7 @@ struct bio *bio_split(struct bio *bio, int sectors, | |||
1784 | * Discards need a mutable bio_vec to accommodate the payload | 1783 | * Discards need a mutable bio_vec to accommodate the payload |
1785 | * required by the DSM TRIM and UNMAP commands. | 1784 | * required by the DSM TRIM and UNMAP commands. |
1786 | */ | 1785 | */ |
1787 | if (bio->bi_rw & REQ_DISCARD) | 1786 | if (bio_op(bio) == REQ_OP_DISCARD) |
1788 | split = bio_clone_bioset(bio, gfp, bs); | 1787 | split = bio_clone_bioset(bio, gfp, bs); |
1789 | else | 1788 | else |
1790 | split = bio_clone_fast(bio, gfp, bs); | 1789 | split = bio_clone_fast(bio, gfp, bs); |
diff --git a/block/blk-core.c b/block/blk-core.c index e8e5865a53e2..7e943dce781c 100644 --- a/block/blk-core.c +++ b/block/blk-core.c | |||
@@ -1973,14 +1973,14 @@ generic_make_request_checks(struct bio *bio) | |||
1973 | } | 1973 | } |
1974 | } | 1974 | } |
1975 | 1975 | ||
1976 | if ((bio->bi_rw & REQ_DISCARD) && | 1976 | if ((bio_op(bio) == REQ_OP_DISCARD) && |
1977 | (!blk_queue_discard(q) || | 1977 | (!blk_queue_discard(q) || |
1978 | ((bio->bi_rw & REQ_SECURE) && !blk_queue_secdiscard(q)))) { | 1978 | ((bio->bi_rw & REQ_SECURE) && !blk_queue_secdiscard(q)))) { |
1979 | err = -EOPNOTSUPP; | 1979 | err = -EOPNOTSUPP; |
1980 | goto end_io; | 1980 | goto end_io; |
1981 | } | 1981 | } |
1982 | 1982 | ||
1983 | if (bio->bi_rw & REQ_WRITE_SAME && !bdev_write_same(bio->bi_bdev)) { | 1983 | if (bio_op(bio) == REQ_OP_WRITE_SAME && !bdev_write_same(bio->bi_bdev)) { |
1984 | err = -EOPNOTSUPP; | 1984 | err = -EOPNOTSUPP; |
1985 | goto end_io; | 1985 | goto end_io; |
1986 | } | 1986 | } |
@@ -2110,7 +2110,7 @@ blk_qc_t submit_bio(struct bio *bio) | |||
2110 | if (bio_has_data(bio)) { | 2110 | if (bio_has_data(bio)) { |
2111 | unsigned int count; | 2111 | unsigned int count; |
2112 | 2112 | ||
2113 | if (unlikely(bio->bi_rw & REQ_WRITE_SAME)) | 2113 | if (unlikely(bio_op(bio) == REQ_OP_WRITE_SAME)) |
2114 | count = bdev_logical_block_size(bio->bi_bdev) >> 9; | 2114 | count = bdev_logical_block_size(bio->bi_bdev) >> 9; |
2115 | else | 2115 | else |
2116 | count = bio_sectors(bio); | 2116 | count = bio_sectors(bio); |
diff --git a/block/blk-flush.c b/block/blk-flush.c index 3af4a5ad46f5..9fd1f63a6348 100644 --- a/block/blk-flush.c +++ b/block/blk-flush.c | |||
@@ -485,7 +485,7 @@ int blkdev_issue_flush(struct block_device *bdev, gfp_t gfp_mask, | |||
485 | 485 | ||
486 | bio = bio_alloc(gfp_mask, 0); | 486 | bio = bio_alloc(gfp_mask, 0); |
487 | bio->bi_bdev = bdev; | 487 | bio->bi_bdev = bdev; |
488 | bio->bi_rw = WRITE_FLUSH; | 488 | bio_set_op_attrs(bio, REQ_OP_WRITE, WRITE_FLUSH); |
489 | 489 | ||
490 | ret = submit_bio_wait(bio); | 490 | ret = submit_bio_wait(bio); |
491 | 491 | ||
diff --git a/block/blk-lib.c b/block/blk-lib.c index 1f6dec5e0975..c614eaa7b853 100644 --- a/block/blk-lib.c +++ b/block/blk-lib.c | |||
@@ -155,7 +155,7 @@ int blkdev_issue_write_same(struct block_device *bdev, sector_t sector, | |||
155 | bio->bi_io_vec->bv_page = page; | 155 | bio->bi_io_vec->bv_page = page; |
156 | bio->bi_io_vec->bv_offset = 0; | 156 | bio->bi_io_vec->bv_offset = 0; |
157 | bio->bi_io_vec->bv_len = bdev_logical_block_size(bdev); | 157 | bio->bi_io_vec->bv_len = bdev_logical_block_size(bdev); |
158 | bio->bi_rw = REQ_WRITE | REQ_WRITE_SAME; | 158 | bio_set_op_attrs(bio, REQ_OP_WRITE_SAME, 0); |
159 | 159 | ||
160 | if (nr_sects > max_write_same_sectors) { | 160 | if (nr_sects > max_write_same_sectors) { |
161 | bio->bi_iter.bi_size = max_write_same_sectors << 9; | 161 | bio->bi_iter.bi_size = max_write_same_sectors << 9; |
@@ -196,7 +196,7 @@ static int __blkdev_issue_zeroout(struct block_device *bdev, sector_t sector, | |||
196 | gfp_mask); | 196 | gfp_mask); |
197 | bio->bi_iter.bi_sector = sector; | 197 | bio->bi_iter.bi_sector = sector; |
198 | bio->bi_bdev = bdev; | 198 | bio->bi_bdev = bdev; |
199 | bio->bi_rw = REQ_WRITE; | 199 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
200 | 200 | ||
201 | while (nr_sects != 0) { | 201 | while (nr_sects != 0) { |
202 | sz = min((sector_t) PAGE_SIZE >> 9 , nr_sects); | 202 | sz = min((sector_t) PAGE_SIZE >> 9 , nr_sects); |
diff --git a/block/blk-map.c b/block/blk-map.c index b9f88b7751fb..61733a660c3a 100644 --- a/block/blk-map.c +++ b/block/blk-map.c | |||
@@ -224,7 +224,7 @@ int blk_rq_map_kern(struct request_queue *q, struct request *rq, void *kbuf, | |||
224 | return PTR_ERR(bio); | 224 | return PTR_ERR(bio); |
225 | 225 | ||
226 | if (!reading) | 226 | if (!reading) |
227 | bio->bi_rw |= REQ_WRITE; | 227 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
228 | 228 | ||
229 | if (do_copy) | 229 | if (do_copy) |
230 | rq->cmd_flags |= REQ_COPY_USER; | 230 | rq->cmd_flags |= REQ_COPY_USER; |
diff --git a/block/blk-merge.c b/block/blk-merge.c index b198070c5bc4..5a03f967557a 100644 --- a/block/blk-merge.c +++ b/block/blk-merge.c | |||
@@ -172,9 +172,9 @@ void blk_queue_split(struct request_queue *q, struct bio **bio, | |||
172 | struct bio *split, *res; | 172 | struct bio *split, *res; |
173 | unsigned nsegs; | 173 | unsigned nsegs; |
174 | 174 | ||
175 | if ((*bio)->bi_rw & REQ_DISCARD) | 175 | if (bio_op(*bio) == REQ_OP_DISCARD) |
176 | split = blk_bio_discard_split(q, *bio, bs, &nsegs); | 176 | split = blk_bio_discard_split(q, *bio, bs, &nsegs); |
177 | else if ((*bio)->bi_rw & REQ_WRITE_SAME) | 177 | else if (bio_op(*bio) == REQ_OP_WRITE_SAME) |
178 | split = blk_bio_write_same_split(q, *bio, bs, &nsegs); | 178 | split = blk_bio_write_same_split(q, *bio, bs, &nsegs); |
179 | else | 179 | else |
180 | split = blk_bio_segment_split(q, *bio, q->bio_split, &nsegs); | 180 | split = blk_bio_segment_split(q, *bio, q->bio_split, &nsegs); |
@@ -213,10 +213,10 @@ static unsigned int __blk_recalc_rq_segments(struct request_queue *q, | |||
213 | * This should probably be returning 0, but blk_add_request_payload() | 213 | * This should probably be returning 0, but blk_add_request_payload() |
214 | * (Christoph!!!!) | 214 | * (Christoph!!!!) |
215 | */ | 215 | */ |
216 | if (bio->bi_rw & REQ_DISCARD) | 216 | if (bio_op(bio) == REQ_OP_DISCARD) |
217 | return 1; | 217 | return 1; |
218 | 218 | ||
219 | if (bio->bi_rw & REQ_WRITE_SAME) | 219 | if (bio_op(bio) == REQ_OP_WRITE_SAME) |
220 | return 1; | 220 | return 1; |
221 | 221 | ||
222 | fbio = bio; | 222 | fbio = bio; |
@@ -385,7 +385,7 @@ static int __blk_bios_map_sg(struct request_queue *q, struct bio *bio, | |||
385 | nsegs = 0; | 385 | nsegs = 0; |
386 | cluster = blk_queue_cluster(q); | 386 | cluster = blk_queue_cluster(q); |
387 | 387 | ||
388 | if (bio->bi_rw & REQ_DISCARD) { | 388 | if (bio_op(bio) == REQ_OP_DISCARD) { |
389 | /* | 389 | /* |
390 | * This is a hack - drivers should be neither modifying the | 390 | * This is a hack - drivers should be neither modifying the |
391 | * biovec, nor relying on bi_vcnt - but because of | 391 | * biovec, nor relying on bi_vcnt - but because of |
@@ -400,7 +400,7 @@ static int __blk_bios_map_sg(struct request_queue *q, struct bio *bio, | |||
400 | return 0; | 400 | return 0; |
401 | } | 401 | } |
402 | 402 | ||
403 | if (bio->bi_rw & REQ_WRITE_SAME) { | 403 | if (bio_op(bio) == REQ_OP_WRITE_SAME) { |
404 | single_segment: | 404 | single_segment: |
405 | *sg = sglist; | 405 | *sg = sglist; |
406 | bvec = bio_iovec(bio); | 406 | bvec = bio_iovec(bio); |
diff --git a/drivers/block/brd.c b/drivers/block/brd.c index c04bd9bc39fd..f5b0d6f4e09f 100644 --- a/drivers/block/brd.c +++ b/drivers/block/brd.c | |||
@@ -339,7 +339,7 @@ static blk_qc_t brd_make_request(struct request_queue *q, struct bio *bio) | |||
339 | if (bio_end_sector(bio) > get_capacity(bdev->bd_disk)) | 339 | if (bio_end_sector(bio) > get_capacity(bdev->bd_disk)) |
340 | goto io_error; | 340 | goto io_error; |
341 | 341 | ||
342 | if (unlikely(bio->bi_rw & REQ_DISCARD)) { | 342 | if (unlikely(bio_op(bio) == REQ_OP_DISCARD)) { |
343 | if (sector & ((PAGE_SIZE >> SECTOR_SHIFT) - 1) || | 343 | if (sector & ((PAGE_SIZE >> SECTOR_SHIFT) - 1) || |
344 | bio->bi_iter.bi_size & ~PAGE_MASK) | 344 | bio->bi_iter.bi_size & ~PAGE_MASK) |
345 | goto io_error; | 345 | goto io_error; |
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index 73ded25b82c4..f9bfecd733a8 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c | |||
@@ -3822,7 +3822,7 @@ static int __floppy_read_block_0(struct block_device *bdev, int drive) | |||
3822 | bio.bi_flags |= (1 << BIO_QUIET); | 3822 | bio.bi_flags |= (1 << BIO_QUIET); |
3823 | bio.bi_private = &cbdata; | 3823 | bio.bi_private = &cbdata; |
3824 | bio.bi_end_io = floppy_rb0_cb; | 3824 | bio.bi_end_io = floppy_rb0_cb; |
3825 | bio.bi_rw = READ; | 3825 | bio_set_op_attrs(&bio, REQ_OP_READ, 0); |
3826 | 3826 | ||
3827 | submit_bio(&bio); | 3827 | submit_bio(&bio); |
3828 | process_fd_request(); | 3828 | process_fd_request(); |
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index d06c62eccdf0..9393bc730acf 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c | |||
@@ -1074,7 +1074,7 @@ static void pkt_gather_data(struct pktcdvd_device *pd, struct packet_data *pkt) | |||
1074 | BUG(); | 1074 | BUG(); |
1075 | 1075 | ||
1076 | atomic_inc(&pkt->io_wait); | 1076 | atomic_inc(&pkt->io_wait); |
1077 | bio->bi_rw = READ; | 1077 | bio_set_op_attrs(bio, REQ_OP_READ, 0); |
1078 | pkt_queue_bio(pd, bio); | 1078 | pkt_queue_bio(pd, bio); |
1079 | frames_read++; | 1079 | frames_read++; |
1080 | } | 1080 | } |
@@ -1336,7 +1336,7 @@ static void pkt_start_write(struct pktcdvd_device *pd, struct packet_data *pkt) | |||
1336 | 1336 | ||
1337 | /* Start the write request */ | 1337 | /* Start the write request */ |
1338 | atomic_set(&pkt->io_wait, 1); | 1338 | atomic_set(&pkt->io_wait, 1); |
1339 | pkt->w_bio->bi_rw = WRITE; | 1339 | bio_set_op_attrs(pkt->w_bio, REQ_OP_WRITE, 0); |
1340 | pkt_queue_bio(pd, pkt->w_bio); | 1340 | pkt_queue_bio(pd, pkt->w_bio); |
1341 | } | 1341 | } |
1342 | 1342 | ||
diff --git a/drivers/block/rsxx/dma.c b/drivers/block/rsxx/dma.c index cf8cd293abb5..5a20385f87d0 100644 --- a/drivers/block/rsxx/dma.c +++ b/drivers/block/rsxx/dma.c | |||
@@ -705,7 +705,7 @@ int rsxx_dma_queue_bio(struct rsxx_cardinfo *card, | |||
705 | dma_cnt[i] = 0; | 705 | dma_cnt[i] = 0; |
706 | } | 706 | } |
707 | 707 | ||
708 | if (bio->bi_rw & REQ_DISCARD) { | 708 | if (bio_op(bio) == REQ_OP_DISCARD) { |
709 | bv_len = bio->bi_iter.bi_size; | 709 | bv_len = bio->bi_iter.bi_size; |
710 | 710 | ||
711 | while (bv_len > 0) { | 711 | while (bv_len > 0) { |
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index 8fcad8b761f1..e5e5d19f2172 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c | |||
@@ -874,7 +874,7 @@ static void __zram_make_request(struct zram *zram, struct bio *bio) | |||
874 | offset = (bio->bi_iter.bi_sector & | 874 | offset = (bio->bi_iter.bi_sector & |
875 | (SECTORS_PER_PAGE - 1)) << SECTOR_SHIFT; | 875 | (SECTORS_PER_PAGE - 1)) << SECTOR_SHIFT; |
876 | 876 | ||
877 | if (unlikely(bio->bi_rw & REQ_DISCARD)) { | 877 | if (unlikely(bio_op(bio) == REQ_OP_DISCARD)) { |
878 | zram_bio_discard(zram, index, offset, bio); | 878 | zram_bio_discard(zram, index, offset, bio); |
879 | bio_endio(bio); | 879 | bio_endio(bio); |
880 | return; | 880 | return; |
diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c index 2103e97a974f..de86d72dcdf0 100644 --- a/drivers/lightnvm/rrpc.c +++ b/drivers/lightnvm/rrpc.c | |||
@@ -342,7 +342,7 @@ try: | |||
342 | 342 | ||
343 | /* Perform read to do GC */ | 343 | /* Perform read to do GC */ |
344 | bio->bi_iter.bi_sector = rrpc_get_sector(rev->addr); | 344 | bio->bi_iter.bi_sector = rrpc_get_sector(rev->addr); |
345 | bio->bi_rw = READ; | 345 | bio_set_op_attrs(bio, REQ_OP_READ, 0); |
346 | bio->bi_private = &wait; | 346 | bio->bi_private = &wait; |
347 | bio->bi_end_io = rrpc_end_sync_bio; | 347 | bio->bi_end_io = rrpc_end_sync_bio; |
348 | 348 | ||
@@ -364,7 +364,7 @@ try: | |||
364 | reinit_completion(&wait); | 364 | reinit_completion(&wait); |
365 | 365 | ||
366 | bio->bi_iter.bi_sector = rrpc_get_sector(rev->addr); | 366 | bio->bi_iter.bi_sector = rrpc_get_sector(rev->addr); |
367 | bio->bi_rw = WRITE; | 367 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
368 | bio->bi_private = &wait; | 368 | bio->bi_private = &wait; |
369 | bio->bi_end_io = rrpc_end_sync_bio; | 369 | bio->bi_end_io = rrpc_end_sync_bio; |
370 | 370 | ||
@@ -908,7 +908,7 @@ static blk_qc_t rrpc_make_rq(struct request_queue *q, struct bio *bio) | |||
908 | struct nvm_rq *rqd; | 908 | struct nvm_rq *rqd; |
909 | int err; | 909 | int err; |
910 | 910 | ||
911 | if (bio->bi_rw & REQ_DISCARD) { | 911 | if (bio_op(bio) == REQ_OP_DISCARD) { |
912 | rrpc_discard(rrpc, bio); | 912 | rrpc_discard(rrpc, bio); |
913 | return BLK_QC_T_NONE; | 913 | return BLK_QC_T_NONE; |
914 | } | 914 | } |
diff --git a/drivers/scsi/osd/osd_initiator.c b/drivers/scsi/osd/osd_initiator.c index 14ed39b32bfc..daa4dc17f172 100644 --- a/drivers/scsi/osd/osd_initiator.c +++ b/drivers/scsi/osd/osd_initiator.c | |||
@@ -726,7 +726,7 @@ static int _osd_req_list_objects(struct osd_request *or, | |||
726 | return PTR_ERR(bio); | 726 | return PTR_ERR(bio); |
727 | } | 727 | } |
728 | 728 | ||
729 | bio->bi_rw &= ~REQ_WRITE; | 729 | bio_set_op_attrs(bio, REQ_OP_READ, 0); |
730 | or->in.bio = bio; | 730 | or->in.bio = bio; |
731 | or->in.total_bytes = bio->bi_iter.bi_size; | 731 | or->in.total_bytes = bio->bi_iter.bi_size; |
732 | return 0; | 732 | return 0; |
@@ -839,7 +839,7 @@ int osd_req_write_kern(struct osd_request *or, | |||
839 | if (IS_ERR(bio)) | 839 | if (IS_ERR(bio)) |
840 | return PTR_ERR(bio); | 840 | return PTR_ERR(bio); |
841 | 841 | ||
842 | bio->bi_rw |= REQ_WRITE; /* FIXME: bio_set_dir() */ | 842 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
843 | osd_req_write(or, obj, offset, bio, len); | 843 | osd_req_write(or, obj, offset, bio, len); |
844 | return 0; | 844 | return 0; |
845 | } | 845 | } |
@@ -956,7 +956,7 @@ static int _osd_req_finalize_cdb_cont(struct osd_request *or, const u8 *cap_key) | |||
956 | if (IS_ERR(bio)) | 956 | if (IS_ERR(bio)) |
957 | return PTR_ERR(bio); | 957 | return PTR_ERR(bio); |
958 | 958 | ||
959 | bio->bi_rw |= REQ_WRITE; | 959 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
960 | 960 | ||
961 | /* integrity check the continuation before the bio is linked | 961 | /* integrity check the continuation before the bio is linked |
962 | * with the other data segments since the continuation | 962 | * with the other data segments since the continuation |
@@ -1077,7 +1077,7 @@ int osd_req_write_sg_kern(struct osd_request *or, | |||
1077 | if (IS_ERR(bio)) | 1077 | if (IS_ERR(bio)) |
1078 | return PTR_ERR(bio); | 1078 | return PTR_ERR(bio); |
1079 | 1079 | ||
1080 | bio->bi_rw |= REQ_WRITE; | 1080 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
1081 | osd_req_write_sg(or, obj, bio, sglist, numentries); | 1081 | osd_req_write_sg(or, obj, bio, sglist, numentries); |
1082 | 1082 | ||
1083 | return 0; | 1083 | return 0; |
diff --git a/drivers/staging/lustre/lustre/llite/lloop.c b/drivers/staging/lustre/lustre/llite/lloop.c index 813a9a354e5f..b677930a8a3b 100644 --- a/drivers/staging/lustre/lustre/llite/lloop.c +++ b/drivers/staging/lustre/lustre/llite/lloop.c | |||
@@ -211,9 +211,9 @@ static int do_bio_lustrebacked(struct lloop_device *lo, struct bio *head) | |||
211 | return io->ci_result; | 211 | return io->ci_result; |
212 | io->ci_lockreq = CILR_NEVER; | 212 | io->ci_lockreq = CILR_NEVER; |
213 | 213 | ||
214 | rw = head->bi_rw; | 214 | rw = bio_data_dir(head); |
215 | for (bio = head; bio ; bio = bio->bi_next) { | 215 | for (bio = head; bio ; bio = bio->bi_next) { |
216 | LASSERT(rw == bio->bi_rw); | 216 | LASSERT(rw == bio_data_dir(bio)); |
217 | 217 | ||
218 | offset = (pgoff_t)(bio->bi_iter.bi_sector << 9) + lo->lo_offset; | 218 | offset = (pgoff_t)(bio->bi_iter.bi_sector << 9) + lo->lo_offset; |
219 | bio_for_each_segment(bvec, bio, iter) { | 219 | bio_for_each_segment(bvec, bio, iter) { |
@@ -305,7 +305,7 @@ static unsigned int loop_get_bio(struct lloop_device *lo, struct bio **req) | |||
305 | /* TODO: need to split the bio, too bad. */ | 305 | /* TODO: need to split the bio, too bad. */ |
306 | LASSERT(first->bi_vcnt <= LLOOP_MAX_SEGMENTS); | 306 | LASSERT(first->bi_vcnt <= LLOOP_MAX_SEGMENTS); |
307 | 307 | ||
308 | rw = first->bi_rw; | 308 | rw = bio_data_dir(first); |
309 | bio = &lo->lo_bio; | 309 | bio = &lo->lo_bio; |
310 | while (*bio && (*bio)->bi_rw == rw) { | 310 | while (*bio && (*bio)->bi_rw == rw) { |
311 | CDEBUG(D_INFO, "bio sector %llu size %u count %u vcnt%u\n", | 311 | CDEBUG(D_INFO, "bio sector %llu size %u count %u vcnt%u\n", |
diff --git a/fs/crypto/crypto.c b/fs/crypto/crypto.c index 5b758566199e..c502c116924c 100644 --- a/fs/crypto/crypto.c +++ b/fs/crypto/crypto.c | |||
@@ -318,7 +318,7 @@ int fscrypt_zeroout_range(struct inode *inode, pgoff_t lblk, | |||
318 | bio->bi_bdev = inode->i_sb->s_bdev; | 318 | bio->bi_bdev = inode->i_sb->s_bdev; |
319 | bio->bi_iter.bi_sector = | 319 | bio->bi_iter.bi_sector = |
320 | pblk << (inode->i_sb->s_blocksize_bits - 9); | 320 | pblk << (inode->i_sb->s_blocksize_bits - 9); |
321 | bio->bi_rw = WRITE; | 321 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
322 | ret = bio_add_page(bio, ciphertext_page, | 322 | ret = bio_add_page(bio, ciphertext_page, |
323 | inode->i_sb->s_blocksize, 0); | 323 | inode->i_sb->s_blocksize, 0); |
324 | if (ret != inode->i_sb->s_blocksize) { | 324 | if (ret != inode->i_sb->s_blocksize) { |
diff --git a/fs/exofs/ore.c b/fs/exofs/ore.c index 7bd8ac8dfb28..8bb72807e70d 100644 --- a/fs/exofs/ore.c +++ b/fs/exofs/ore.c | |||
@@ -878,7 +878,7 @@ static int _write_mirror(struct ore_io_state *ios, int cur_comp) | |||
878 | } else { | 878 | } else { |
879 | bio = master_dev->bio; | 879 | bio = master_dev->bio; |
880 | /* FIXME: bio_set_dir() */ | 880 | /* FIXME: bio_set_dir() */ |
881 | bio->bi_rw |= REQ_WRITE; | 881 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
882 | } | 882 | } |
883 | 883 | ||
884 | osd_req_write(or, _ios_obj(ios, cur_comp), | 884 | osd_req_write(or, _ios_obj(ios, cur_comp), |
diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c index a72dbcc7a43e..5185fed40fab 100644 --- a/fs/ext4/page-io.c +++ b/fs/ext4/page-io.c | |||
@@ -340,9 +340,9 @@ void ext4_io_submit(struct ext4_io_submit *io) | |||
340 | struct bio *bio = io->io_bio; | 340 | struct bio *bio = io->io_bio; |
341 | 341 | ||
342 | if (bio) { | 342 | if (bio) { |
343 | int io_op = io->io_wbc->sync_mode == WB_SYNC_ALL ? | 343 | int io_op_flags = io->io_wbc->sync_mode == WB_SYNC_ALL ? |
344 | WRITE_SYNC : WRITE; | 344 | WRITE_SYNC : 0; |
345 | io->io_bio->bi_rw = io_op; | 345 | bio_set_op_attrs(io->io_bio, REQ_OP_WRITE, io_op_flags); |
346 | submit_bio(io->io_bio); | 346 | submit_bio(io->io_bio); |
347 | } | 347 | } |
348 | io->io_bio = NULL; | 348 | io->io_bio = NULL; |
diff --git a/fs/ext4/readpage.c b/fs/ext4/readpage.c index 130bd45f4a99..2ced5a823354 100644 --- a/fs/ext4/readpage.c +++ b/fs/ext4/readpage.c | |||
@@ -294,7 +294,7 @@ int ext4_mpage_readpages(struct address_space *mapping, | |||
294 | bio->bi_iter.bi_sector = blocks[0] << (blkbits - 9); | 294 | bio->bi_iter.bi_sector = blocks[0] << (blkbits - 9); |
295 | bio->bi_end_io = mpage_end_io; | 295 | bio->bi_end_io = mpage_end_io; |
296 | bio->bi_private = ctx; | 296 | bio->bi_private = ctx; |
297 | bio->bi_rw = READ; | 297 | bio_set_op_attrs(bio, REQ_OP_READ, 0); |
298 | } | 298 | } |
299 | 299 | ||
300 | length = first_hole << blkbits; | 300 | length = first_hole << blkbits; |
diff --git a/fs/jfs/jfs_logmgr.c b/fs/jfs/jfs_logmgr.c index 3ee3f32562f9..a74752146ec9 100644 --- a/fs/jfs/jfs_logmgr.c +++ b/fs/jfs/jfs_logmgr.c | |||
@@ -2002,7 +2002,7 @@ static int lbmRead(struct jfs_log * log, int pn, struct lbuf ** bpp) | |||
2002 | 2002 | ||
2003 | bio->bi_end_io = lbmIODone; | 2003 | bio->bi_end_io = lbmIODone; |
2004 | bio->bi_private = bp; | 2004 | bio->bi_private = bp; |
2005 | bio->bi_rw = READ_SYNC; | 2005 | bio_set_op_attrs(bio, REQ_OP_READ, READ_SYNC); |
2006 | /*check if journaling to disk has been disabled*/ | 2006 | /*check if journaling to disk has been disabled*/ |
2007 | if (log->no_integrity) { | 2007 | if (log->no_integrity) { |
2008 | bio->bi_iter.bi_size = 0; | 2008 | bio->bi_iter.bi_size = 0; |
@@ -2146,7 +2146,7 @@ static void lbmStartIO(struct lbuf * bp) | |||
2146 | 2146 | ||
2147 | bio->bi_end_io = lbmIODone; | 2147 | bio->bi_end_io = lbmIODone; |
2148 | bio->bi_private = bp; | 2148 | bio->bi_private = bp; |
2149 | bio->bi_rw = WRITE_SYNC; | 2149 | bio_set_op_attrs(bio, REQ_OP_WRITE, WRITE_SYNC); |
2150 | 2150 | ||
2151 | /* check if journaling to disk has been disabled */ | 2151 | /* check if journaling to disk has been disabled */ |
2152 | if (log->no_integrity) { | 2152 | if (log->no_integrity) { |
diff --git a/fs/jfs/jfs_metapage.c b/fs/jfs/jfs_metapage.c index 97254436a4ed..e7fa9e513040 100644 --- a/fs/jfs/jfs_metapage.c +++ b/fs/jfs/jfs_metapage.c | |||
@@ -434,7 +434,7 @@ static int metapage_writepage(struct page *page, struct writeback_control *wbc) | |||
434 | bio->bi_iter.bi_sector = pblock << (inode->i_blkbits - 9); | 434 | bio->bi_iter.bi_sector = pblock << (inode->i_blkbits - 9); |
435 | bio->bi_end_io = metapage_write_end_io; | 435 | bio->bi_end_io = metapage_write_end_io; |
436 | bio->bi_private = page; | 436 | bio->bi_private = page; |
437 | bio->bi_rw = WRITE; | 437 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
438 | 438 | ||
439 | /* Don't call bio_add_page yet, we may add to this vec */ | 439 | /* Don't call bio_add_page yet, we may add to this vec */ |
440 | bio_offset = offset; | 440 | bio_offset = offset; |
@@ -515,7 +515,7 @@ static int metapage_readpage(struct file *fp, struct page *page) | |||
515 | pblock << (inode->i_blkbits - 9); | 515 | pblock << (inode->i_blkbits - 9); |
516 | bio->bi_end_io = metapage_read_end_io; | 516 | bio->bi_end_io = metapage_read_end_io; |
517 | bio->bi_private = page; | 517 | bio->bi_private = page; |
518 | bio->bi_rw = READ; | 518 | bio_set_op_attrs(bio, REQ_OP_READ, 0); |
519 | len = xlen << inode->i_blkbits; | 519 | len = xlen << inode->i_blkbits; |
520 | offset = block_offset << inode->i_blkbits; | 520 | offset = block_offset << inode->i_blkbits; |
521 | if (bio_add_page(bio, page, len, offset) < len) | 521 | if (bio_add_page(bio, page, len, offset) < len) |
diff --git a/fs/logfs/dev_bdev.c b/fs/logfs/dev_bdev.c index 29704bda6394..a8329cc47dec 100644 --- a/fs/logfs/dev_bdev.c +++ b/fs/logfs/dev_bdev.c | |||
@@ -14,7 +14,7 @@ | |||
14 | 14 | ||
15 | #define PAGE_OFS(ofs) ((ofs) & (PAGE_SIZE-1)) | 15 | #define PAGE_OFS(ofs) ((ofs) & (PAGE_SIZE-1)) |
16 | 16 | ||
17 | static int sync_request(struct page *page, struct block_device *bdev, int rw) | 17 | static int sync_request(struct page *page, struct block_device *bdev, int op) |
18 | { | 18 | { |
19 | struct bio bio; | 19 | struct bio bio; |
20 | struct bio_vec bio_vec; | 20 | struct bio_vec bio_vec; |
@@ -29,7 +29,7 @@ static int sync_request(struct page *page, struct block_device *bdev, int rw) | |||
29 | bio.bi_bdev = bdev; | 29 | bio.bi_bdev = bdev; |
30 | bio.bi_iter.bi_sector = page->index * (PAGE_SIZE >> 9); | 30 | bio.bi_iter.bi_sector = page->index * (PAGE_SIZE >> 9); |
31 | bio.bi_iter.bi_size = PAGE_SIZE; | 31 | bio.bi_iter.bi_size = PAGE_SIZE; |
32 | bio.bi_rw = rw; | 32 | bio_set_op_attrs(&bio, op, 0); |
33 | 33 | ||
34 | return submit_bio_wait(&bio); | 34 | return submit_bio_wait(&bio); |
35 | } | 35 | } |
@@ -96,7 +96,7 @@ static int __bdev_writeseg(struct super_block *sb, u64 ofs, pgoff_t index, | |||
96 | bio->bi_iter.bi_sector = ofs >> 9; | 96 | bio->bi_iter.bi_sector = ofs >> 9; |
97 | bio->bi_private = sb; | 97 | bio->bi_private = sb; |
98 | bio->bi_end_io = writeseg_end_io; | 98 | bio->bi_end_io = writeseg_end_io; |
99 | bio->bi_rw = WRITE; | 99 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
100 | atomic_inc(&super->s_pending_writes); | 100 | atomic_inc(&super->s_pending_writes); |
101 | submit_bio(bio); | 101 | submit_bio(bio); |
102 | 102 | ||
@@ -124,7 +124,7 @@ static int __bdev_writeseg(struct super_block *sb, u64 ofs, pgoff_t index, | |||
124 | bio->bi_iter.bi_sector = ofs >> 9; | 124 | bio->bi_iter.bi_sector = ofs >> 9; |
125 | bio->bi_private = sb; | 125 | bio->bi_private = sb; |
126 | bio->bi_end_io = writeseg_end_io; | 126 | bio->bi_end_io = writeseg_end_io; |
127 | bio->bi_rw = WRITE; | 127 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
128 | atomic_inc(&super->s_pending_writes); | 128 | atomic_inc(&super->s_pending_writes); |
129 | submit_bio(bio); | 129 | submit_bio(bio); |
130 | return 0; | 130 | return 0; |
@@ -188,7 +188,7 @@ static int do_erase(struct super_block *sb, u64 ofs, pgoff_t index, | |||
188 | bio->bi_iter.bi_sector = ofs >> 9; | 188 | bio->bi_iter.bi_sector = ofs >> 9; |
189 | bio->bi_private = sb; | 189 | bio->bi_private = sb; |
190 | bio->bi_end_io = erase_end_io; | 190 | bio->bi_end_io = erase_end_io; |
191 | bio->bi_rw = WRITE; | 191 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
192 | atomic_inc(&super->s_pending_writes); | 192 | atomic_inc(&super->s_pending_writes); |
193 | submit_bio(bio); | 193 | submit_bio(bio); |
194 | 194 | ||
@@ -210,7 +210,7 @@ static int do_erase(struct super_block *sb, u64 ofs, pgoff_t index, | |||
210 | bio->bi_iter.bi_sector = ofs >> 9; | 210 | bio->bi_iter.bi_sector = ofs >> 9; |
211 | bio->bi_private = sb; | 211 | bio->bi_private = sb; |
212 | bio->bi_end_io = erase_end_io; | 212 | bio->bi_end_io = erase_end_io; |
213 | bio->bi_rw = WRITE; | 213 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
214 | atomic_inc(&super->s_pending_writes); | 214 | atomic_inc(&super->s_pending_writes); |
215 | submit_bio(bio); | 215 | submit_bio(bio); |
216 | return 0; | 216 | return 0; |
diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c index 4c79f4ddb052..f55a4e756047 100644 --- a/fs/nfs/blocklayout/blocklayout.c +++ b/fs/nfs/blocklayout/blocklayout.c | |||
@@ -107,7 +107,7 @@ bl_submit_bio(struct bio *bio) | |||
107 | if (bio) { | 107 | if (bio) { |
108 | get_parallel(bio->bi_private); | 108 | get_parallel(bio->bi_private); |
109 | dprintk("%s submitting %s bio %u@%llu\n", __func__, | 109 | dprintk("%s submitting %s bio %u@%llu\n", __func__, |
110 | bio->bi_rw == READ ? "read" : "write", | 110 | bio_op(bio) == READ ? "read" : "write", |
111 | bio->bi_iter.bi_size, | 111 | bio->bi_iter.bi_size, |
112 | (unsigned long long)bio->bi_iter.bi_sector); | 112 | (unsigned long long)bio->bi_iter.bi_sector); |
113 | submit_bio(bio); | 113 | submit_bio(bio); |
@@ -175,7 +175,7 @@ retry: | |||
175 | disk_addr >> SECTOR_SHIFT, end_io, par); | 175 | disk_addr >> SECTOR_SHIFT, end_io, par); |
176 | if (!bio) | 176 | if (!bio) |
177 | return ERR_PTR(-ENOMEM); | 177 | return ERR_PTR(-ENOMEM); |
178 | bio->bi_rw = rw; | 178 | bio_set_op_attrs(bio, rw, 0); |
179 | } | 179 | } |
180 | if (bio_add_page(bio, page, *len, offset) < *len) { | 180 | if (bio_add_page(bio, page, *len, offset) < *len) { |
181 | bio = bl_submit_bio(bio); | 181 | bio = bl_submit_bio(bio); |
diff --git a/include/linux/bio.h b/include/linux/bio.h index 09c5308494a6..4568647269a7 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h | |||
@@ -109,18 +109,23 @@ static inline bool bio_has_data(struct bio *bio) | |||
109 | { | 109 | { |
110 | if (bio && | 110 | if (bio && |
111 | bio->bi_iter.bi_size && | 111 | bio->bi_iter.bi_size && |
112 | !(bio->bi_rw & REQ_DISCARD)) | 112 | bio_op(bio) != REQ_OP_DISCARD) |
113 | return true; | 113 | return true; |
114 | 114 | ||
115 | return false; | 115 | return false; |
116 | } | 116 | } |
117 | 117 | ||
118 | static inline bool bio_no_advance_iter(struct bio *bio) | ||
119 | { | ||
120 | return bio_op(bio) == REQ_OP_DISCARD || bio_op(bio) == REQ_OP_WRITE_SAME; | ||
121 | } | ||
122 | |||
118 | static inline bool bio_is_rw(struct bio *bio) | 123 | static inline bool bio_is_rw(struct bio *bio) |
119 | { | 124 | { |
120 | if (!bio_has_data(bio)) | 125 | if (!bio_has_data(bio)) |
121 | return false; | 126 | return false; |
122 | 127 | ||
123 | if (bio->bi_rw & BIO_NO_ADVANCE_ITER_MASK) | 128 | if (bio_no_advance_iter(bio)) |
124 | return false; | 129 | return false; |
125 | 130 | ||
126 | return true; | 131 | return true; |
@@ -228,7 +233,7 @@ static inline void bio_advance_iter(struct bio *bio, struct bvec_iter *iter, | |||
228 | { | 233 | { |
229 | iter->bi_sector += bytes >> 9; | 234 | iter->bi_sector += bytes >> 9; |
230 | 235 | ||
231 | if (bio->bi_rw & BIO_NO_ADVANCE_ITER_MASK) | 236 | if (bio_no_advance_iter(bio)) |
232 | iter->bi_size -= bytes; | 237 | iter->bi_size -= bytes; |
233 | else | 238 | else |
234 | bvec_iter_advance(bio->bi_io_vec, iter, bytes); | 239 | bvec_iter_advance(bio->bi_io_vec, iter, bytes); |
@@ -256,10 +261,10 @@ static inline unsigned bio_segments(struct bio *bio) | |||
256 | * differently: | 261 | * differently: |
257 | */ | 262 | */ |
258 | 263 | ||
259 | if (bio->bi_rw & REQ_DISCARD) | 264 | if (bio_op(bio) == REQ_OP_DISCARD) |
260 | return 1; | 265 | return 1; |
261 | 266 | ||
262 | if (bio->bi_rw & REQ_WRITE_SAME) | 267 | if (bio_op(bio) == REQ_OP_WRITE_SAME) |
263 | return 1; | 268 | return 1; |
264 | 269 | ||
265 | bio_for_each_segment(bv, bio, iter) | 270 | bio_for_each_segment(bv, bio, iter) |
diff --git a/mm/page_io.c b/mm/page_io.c index 5a5fd66d7bd5..dcc5d3769608 100644 --- a/mm/page_io.c +++ b/mm/page_io.c | |||
@@ -317,7 +317,7 @@ int __swap_writepage(struct page *page, struct writeback_control *wbc, | |||
317 | ret = -ENOMEM; | 317 | ret = -ENOMEM; |
318 | goto out; | 318 | goto out; |
319 | } | 319 | } |
320 | bio->bi_rw = WRITE; | 320 | bio_set_op_attrs(bio, REQ_OP_WRITE, 0); |
321 | if (wbc->sync_mode == WB_SYNC_ALL) | 321 | if (wbc->sync_mode == WB_SYNC_ALL) |
322 | bio->bi_rw |= REQ_SYNC; | 322 | bio->bi_rw |= REQ_SYNC; |
323 | count_vm_event(PSWPOUT); | 323 | count_vm_event(PSWPOUT); |
@@ -370,7 +370,7 @@ int swap_readpage(struct page *page) | |||
370 | ret = -ENOMEM; | 370 | ret = -ENOMEM; |
371 | goto out; | 371 | goto out; |
372 | } | 372 | } |
373 | bio->bi_rw = READ; | 373 | bio_set_op_attrs(bio, REQ_OP_READ, 0); |
374 | count_vm_event(PSWPIN); | 374 | count_vm_event(PSWPIN); |
375 | submit_bio(bio); | 375 | submit_bio(bio); |
376 | out: | 376 | out: |