diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-07 19:38:45 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-07 19:38:45 -0400 |
commit | 857953d72f3744f325de93320cc2673795e9ca89 (patch) | |
tree | b4253224fd74148708bd1fb210e4155e22ee7b63 /include | |
parent | 635a4ba111e3bd0169fd549b24fe108b1f171713 (diff) | |
parent | 1eff9d322a444245c67515edb52bc0eb68374aa8 (diff) |
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
Pull more block fixes from Jens Axboe:
"As mentioned in the pull the other day, a few more fixes for this
round, all related to the bio op changes in this series.
Two fixes, and then a cleanup, renaming bio->bi_rw to bio->bi_opf. I
wanted to do that change right after or right before -rc1, so that
risk of conflict was reduced. I just rebased the series on top of
current master, and no new ->bi_rw usage has snuck in"
* 'for-linus' of git://git.kernel.dk/linux-block:
block: rename bio bi_rw to bi_opf
target: iblock_execute_sync_cache() should use bio_set_op_attrs()
mm: make __swap_writepage() use bio_set_op_attrs()
block/mm: make bdev_ops->rw_page() take a bool for read/write
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/bio.h | 4 | ||||
-rw-r--r-- | include/linux/blk-cgroup.h | 4 | ||||
-rw-r--r-- | include/linux/blk_types.h | 37 | ||||
-rw-r--r-- | include/linux/blkdev.h | 2 | ||||
-rw-r--r-- | include/linux/fs.h | 3 | ||||
-rw-r--r-- | include/linux/pagemap.h | 2 | ||||
-rw-r--r-- | include/trace/events/bcache.h | 8 | ||||
-rw-r--r-- | include/trace/events/block.h | 14 |
8 files changed, 37 insertions, 37 deletions
diff --git a/include/linux/bio.h b/include/linux/bio.h index e09a8895fc31..59ffaa68b11b 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h | |||
@@ -95,7 +95,7 @@ static inline bool bio_is_rw(struct bio *bio) | |||
95 | 95 | ||
96 | static inline bool bio_mergeable(struct bio *bio) | 96 | static inline bool bio_mergeable(struct bio *bio) |
97 | { | 97 | { |
98 | if (bio->bi_rw & REQ_NOMERGE_FLAGS) | 98 | if (bio->bi_opf & REQ_NOMERGE_FLAGS) |
99 | return false; | 99 | return false; |
100 | 100 | ||
101 | return true; | 101 | return true; |
@@ -318,7 +318,7 @@ struct bio_integrity_payload { | |||
318 | 318 | ||
319 | static inline struct bio_integrity_payload *bio_integrity(struct bio *bio) | 319 | static inline struct bio_integrity_payload *bio_integrity(struct bio *bio) |
320 | { | 320 | { |
321 | if (bio->bi_rw & REQ_INTEGRITY) | 321 | if (bio->bi_opf & REQ_INTEGRITY) |
322 | return bio->bi_integrity; | 322 | return bio->bi_integrity; |
323 | 323 | ||
324 | return NULL; | 324 | return NULL; |
diff --git a/include/linux/blk-cgroup.h b/include/linux/blk-cgroup.h index f77150a4a96a..10648e300c93 100644 --- a/include/linux/blk-cgroup.h +++ b/include/linux/blk-cgroup.h | |||
@@ -714,9 +714,9 @@ static inline bool blkcg_bio_issue_check(struct request_queue *q, | |||
714 | 714 | ||
715 | if (!throtl) { | 715 | if (!throtl) { |
716 | blkg = blkg ?: q->root_blkg; | 716 | blkg = blkg ?: q->root_blkg; |
717 | blkg_rwstat_add(&blkg->stat_bytes, bio_op(bio), bio->bi_rw, | 717 | blkg_rwstat_add(&blkg->stat_bytes, bio_op(bio), bio->bi_opf, |
718 | bio->bi_iter.bi_size); | 718 | bio->bi_iter.bi_size); |
719 | blkg_rwstat_add(&blkg->stat_ios, bio_op(bio), bio->bi_rw, 1); | 719 | blkg_rwstat_add(&blkg->stat_ios, bio_op(bio), bio->bi_opf, 1); |
720 | } | 720 | } |
721 | 721 | ||
722 | rcu_read_unlock(); | 722 | rcu_read_unlock(); |
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h index 14b28ff2caf8..436f43f87da9 100644 --- a/include/linux/blk_types.h +++ b/include/linux/blk_types.h | |||
@@ -18,17 +18,6 @@ struct cgroup_subsys_state; | |||
18 | typedef void (bio_end_io_t) (struct bio *); | 18 | typedef void (bio_end_io_t) (struct bio *); |
19 | typedef void (bio_destructor_t) (struct bio *); | 19 | typedef void (bio_destructor_t) (struct bio *); |
20 | 20 | ||
21 | enum req_op { | ||
22 | REQ_OP_READ, | ||
23 | REQ_OP_WRITE, | ||
24 | REQ_OP_DISCARD, /* request to discard sectors */ | ||
25 | REQ_OP_SECURE_ERASE, /* request to securely erase sectors */ | ||
26 | REQ_OP_WRITE_SAME, /* write same block many times */ | ||
27 | REQ_OP_FLUSH, /* request for cache flush */ | ||
28 | }; | ||
29 | |||
30 | #define REQ_OP_BITS 3 | ||
31 | |||
32 | #ifdef CONFIG_BLOCK | 21 | #ifdef CONFIG_BLOCK |
33 | /* | 22 | /* |
34 | * main unit of I/O for the block layer and lower layers (ie drivers and | 23 | * main unit of I/O for the block layer and lower layers (ie drivers and |
@@ -38,8 +27,9 @@ struct bio { | |||
38 | struct bio *bi_next; /* request queue link */ | 27 | struct bio *bi_next; /* request queue link */ |
39 | struct block_device *bi_bdev; | 28 | struct block_device *bi_bdev; |
40 | int bi_error; | 29 | int bi_error; |
41 | unsigned int bi_rw; /* bottom bits req flags, | 30 | unsigned int bi_opf; /* bottom bits req flags, |
42 | * top bits REQ_OP | 31 | * top bits REQ_OP. Use |
32 | * accessors. | ||
43 | */ | 33 | */ |
44 | unsigned short bi_flags; /* status, command, etc */ | 34 | unsigned short bi_flags; /* status, command, etc */ |
45 | unsigned short bi_ioprio; | 35 | unsigned short bi_ioprio; |
@@ -100,13 +90,13 @@ struct bio { | |||
100 | }; | 90 | }; |
101 | 91 | ||
102 | #define BIO_OP_SHIFT (8 * sizeof(unsigned int) - REQ_OP_BITS) | 92 | #define BIO_OP_SHIFT (8 * sizeof(unsigned int) - REQ_OP_BITS) |
103 | #define bio_op(bio) ((bio)->bi_rw >> BIO_OP_SHIFT) | 93 | #define bio_op(bio) ((bio)->bi_opf >> BIO_OP_SHIFT) |
104 | 94 | ||
105 | #define bio_set_op_attrs(bio, op, op_flags) do { \ | 95 | #define bio_set_op_attrs(bio, op, op_flags) do { \ |
106 | WARN_ON(op >= (1 << REQ_OP_BITS)); \ | 96 | WARN_ON(op >= (1 << REQ_OP_BITS)); \ |
107 | (bio)->bi_rw &= ((1 << BIO_OP_SHIFT) - 1); \ | 97 | (bio)->bi_opf &= ((1 << BIO_OP_SHIFT) - 1); \ |
108 | (bio)->bi_rw |= ((unsigned int) (op) << BIO_OP_SHIFT); \ | 98 | (bio)->bi_opf |= ((unsigned int) (op) << BIO_OP_SHIFT); \ |
109 | (bio)->bi_rw |= op_flags; \ | 99 | (bio)->bi_opf |= op_flags; \ |
110 | } while (0) | 100 | } while (0) |
111 | 101 | ||
112 | #define BIO_RESET_BYTES offsetof(struct bio, bi_max_vecs) | 102 | #define BIO_RESET_BYTES offsetof(struct bio, bi_max_vecs) |
@@ -149,7 +139,7 @@ struct bio { | |||
149 | 139 | ||
150 | /* | 140 | /* |
151 | * Request flags. For use in the cmd_flags field of struct request, and in | 141 | * Request flags. For use in the cmd_flags field of struct request, and in |
152 | * bi_rw of struct bio. Note that some flags are only valid in either one. | 142 | * bi_opf of struct bio. Note that some flags are only valid in either one. |
153 | */ | 143 | */ |
154 | enum rq_flag_bits { | 144 | enum rq_flag_bits { |
155 | /* common flags */ | 145 | /* common flags */ |
@@ -239,6 +229,17 @@ enum rq_flag_bits { | |||
239 | #define REQ_HASHED (1ULL << __REQ_HASHED) | 229 | #define REQ_HASHED (1ULL << __REQ_HASHED) |
240 | #define REQ_MQ_INFLIGHT (1ULL << __REQ_MQ_INFLIGHT) | 230 | #define REQ_MQ_INFLIGHT (1ULL << __REQ_MQ_INFLIGHT) |
241 | 231 | ||
232 | enum req_op { | ||
233 | REQ_OP_READ, | ||
234 | REQ_OP_WRITE, | ||
235 | REQ_OP_DISCARD, /* request to discard sectors */ | ||
236 | REQ_OP_SECURE_ERASE, /* request to securely erase sectors */ | ||
237 | REQ_OP_WRITE_SAME, /* write same block many times */ | ||
238 | REQ_OP_FLUSH, /* request for cache flush */ | ||
239 | }; | ||
240 | |||
241 | #define REQ_OP_BITS 3 | ||
242 | |||
242 | typedef unsigned int blk_qc_t; | 243 | typedef unsigned int blk_qc_t; |
243 | #define BLK_QC_T_NONE -1U | 244 | #define BLK_QC_T_NONE -1U |
244 | #define BLK_QC_T_SHIFT 16 | 245 | #define BLK_QC_T_SHIFT 16 |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index ccd68c0d01de..2c210b6a7bcf 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -1672,7 +1672,7 @@ struct blk_dax_ctl { | |||
1672 | struct block_device_operations { | 1672 | struct block_device_operations { |
1673 | int (*open) (struct block_device *, fmode_t); | 1673 | int (*open) (struct block_device *, fmode_t); |
1674 | void (*release) (struct gendisk *, fmode_t); | 1674 | void (*release) (struct gendisk *, fmode_t); |
1675 | int (*rw_page)(struct block_device *, sector_t, struct page *, int op); | 1675 | int (*rw_page)(struct block_device *, sector_t, struct page *, bool); |
1676 | int (*ioctl) (struct block_device *, fmode_t, unsigned, unsigned long); | 1676 | int (*ioctl) (struct block_device *, fmode_t, unsigned, unsigned long); |
1677 | int (*compat_ioctl) (struct block_device *, fmode_t, unsigned, unsigned long); | 1677 | int (*compat_ioctl) (struct block_device *, fmode_t, unsigned, unsigned long); |
1678 | long (*direct_access)(struct block_device *, sector_t, void **, pfn_t *, | 1678 | long (*direct_access)(struct block_device *, sector_t, void **, pfn_t *, |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 33f0e96db06f..3523bf62f328 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -2480,13 +2480,12 @@ extern void init_special_inode(struct inode *, umode_t, dev_t); | |||
2480 | extern void make_bad_inode(struct inode *); | 2480 | extern void make_bad_inode(struct inode *); |
2481 | extern bool is_bad_inode(struct inode *); | 2481 | extern bool is_bad_inode(struct inode *); |
2482 | 2482 | ||
2483 | #ifdef CONFIG_BLOCK | ||
2483 | static inline bool op_is_write(unsigned int op) | 2484 | static inline bool op_is_write(unsigned int op) |
2484 | { | 2485 | { |
2485 | return op == REQ_OP_READ ? false : true; | 2486 | return op == REQ_OP_READ ? false : true; |
2486 | } | 2487 | } |
2487 | 2488 | ||
2488 | #ifdef CONFIG_BLOCK | ||
2489 | |||
2490 | /* | 2489 | /* |
2491 | * return data direction, READ or WRITE | 2490 | * return data direction, READ or WRITE |
2492 | */ | 2491 | */ |
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 45786374abbd..66a1260b33de 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h | |||
@@ -510,7 +510,7 @@ static inline void wait_on_page_writeback(struct page *page) | |||
510 | extern void end_page_writeback(struct page *page); | 510 | extern void end_page_writeback(struct page *page); |
511 | void wait_for_stable_page(struct page *page); | 511 | void wait_for_stable_page(struct page *page); |
512 | 512 | ||
513 | void page_endio(struct page *page, int op, int err); | 513 | void page_endio(struct page *page, bool is_write, int err); |
514 | 514 | ||
515 | /* | 515 | /* |
516 | * Add an arbitrary waiter to a page's wait queue | 516 | * Add an arbitrary waiter to a page's wait queue |
diff --git a/include/trace/events/bcache.h b/include/trace/events/bcache.h index 65673d8b81ac..d336b890e31f 100644 --- a/include/trace/events/bcache.h +++ b/include/trace/events/bcache.h | |||
@@ -27,7 +27,7 @@ DECLARE_EVENT_CLASS(bcache_request, | |||
27 | __entry->sector = bio->bi_iter.bi_sector; | 27 | __entry->sector = bio->bi_iter.bi_sector; |
28 | __entry->orig_sector = bio->bi_iter.bi_sector - 16; | 28 | __entry->orig_sector = bio->bi_iter.bi_sector - 16; |
29 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; | 29 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; |
30 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_rw, | 30 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, |
31 | bio->bi_iter.bi_size); | 31 | bio->bi_iter.bi_size); |
32 | ), | 32 | ), |
33 | 33 | ||
@@ -102,7 +102,7 @@ DECLARE_EVENT_CLASS(bcache_bio, | |||
102 | __entry->dev = bio->bi_bdev->bd_dev; | 102 | __entry->dev = bio->bi_bdev->bd_dev; |
103 | __entry->sector = bio->bi_iter.bi_sector; | 103 | __entry->sector = bio->bi_iter.bi_sector; |
104 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; | 104 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; |
105 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_rw, | 105 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, |
106 | bio->bi_iter.bi_size); | 106 | bio->bi_iter.bi_size); |
107 | ), | 107 | ), |
108 | 108 | ||
@@ -138,7 +138,7 @@ TRACE_EVENT(bcache_read, | |||
138 | __entry->dev = bio->bi_bdev->bd_dev; | 138 | __entry->dev = bio->bi_bdev->bd_dev; |
139 | __entry->sector = bio->bi_iter.bi_sector; | 139 | __entry->sector = bio->bi_iter.bi_sector; |
140 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; | 140 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; |
141 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_rw, | 141 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, |
142 | bio->bi_iter.bi_size); | 142 | bio->bi_iter.bi_size); |
143 | __entry->cache_hit = hit; | 143 | __entry->cache_hit = hit; |
144 | __entry->bypass = bypass; | 144 | __entry->bypass = bypass; |
@@ -170,7 +170,7 @@ TRACE_EVENT(bcache_write, | |||
170 | __entry->inode = inode; | 170 | __entry->inode = inode; |
171 | __entry->sector = bio->bi_iter.bi_sector; | 171 | __entry->sector = bio->bi_iter.bi_sector; |
172 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; | 172 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; |
173 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_rw, | 173 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, |
174 | bio->bi_iter.bi_size); | 174 | bio->bi_iter.bi_size); |
175 | __entry->writeback = writeback; | 175 | __entry->writeback = writeback; |
176 | __entry->bypass = bypass; | 176 | __entry->bypass = bypass; |
diff --git a/include/trace/events/block.h b/include/trace/events/block.h index 5a2a7592068f..8f3a163b8166 100644 --- a/include/trace/events/block.h +++ b/include/trace/events/block.h | |||
@@ -274,7 +274,7 @@ TRACE_EVENT(block_bio_bounce, | |||
274 | bio->bi_bdev->bd_dev : 0; | 274 | bio->bi_bdev->bd_dev : 0; |
275 | __entry->sector = bio->bi_iter.bi_sector; | 275 | __entry->sector = bio->bi_iter.bi_sector; |
276 | __entry->nr_sector = bio_sectors(bio); | 276 | __entry->nr_sector = bio_sectors(bio); |
277 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_rw, | 277 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, |
278 | bio->bi_iter.bi_size); | 278 | bio->bi_iter.bi_size); |
279 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | 279 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); |
280 | ), | 280 | ), |
@@ -313,7 +313,7 @@ TRACE_EVENT(block_bio_complete, | |||
313 | __entry->sector = bio->bi_iter.bi_sector; | 313 | __entry->sector = bio->bi_iter.bi_sector; |
314 | __entry->nr_sector = bio_sectors(bio); | 314 | __entry->nr_sector = bio_sectors(bio); |
315 | __entry->error = error; | 315 | __entry->error = error; |
316 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_rw, | 316 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, |
317 | bio->bi_iter.bi_size); | 317 | bio->bi_iter.bi_size); |
318 | ), | 318 | ), |
319 | 319 | ||
@@ -341,7 +341,7 @@ DECLARE_EVENT_CLASS(block_bio_merge, | |||
341 | __entry->dev = bio->bi_bdev->bd_dev; | 341 | __entry->dev = bio->bi_bdev->bd_dev; |
342 | __entry->sector = bio->bi_iter.bi_sector; | 342 | __entry->sector = bio->bi_iter.bi_sector; |
343 | __entry->nr_sector = bio_sectors(bio); | 343 | __entry->nr_sector = bio_sectors(bio); |
344 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_rw, | 344 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, |
345 | bio->bi_iter.bi_size); | 345 | bio->bi_iter.bi_size); |
346 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | 346 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); |
347 | ), | 347 | ), |
@@ -409,7 +409,7 @@ TRACE_EVENT(block_bio_queue, | |||
409 | __entry->dev = bio->bi_bdev->bd_dev; | 409 | __entry->dev = bio->bi_bdev->bd_dev; |
410 | __entry->sector = bio->bi_iter.bi_sector; | 410 | __entry->sector = bio->bi_iter.bi_sector; |
411 | __entry->nr_sector = bio_sectors(bio); | 411 | __entry->nr_sector = bio_sectors(bio); |
412 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_rw, | 412 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, |
413 | bio->bi_iter.bi_size); | 413 | bio->bi_iter.bi_size); |
414 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | 414 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); |
415 | ), | 415 | ), |
@@ -439,7 +439,7 @@ DECLARE_EVENT_CLASS(block_get_rq, | |||
439 | __entry->sector = bio ? bio->bi_iter.bi_sector : 0; | 439 | __entry->sector = bio ? bio->bi_iter.bi_sector : 0; |
440 | __entry->nr_sector = bio ? bio_sectors(bio) : 0; | 440 | __entry->nr_sector = bio ? bio_sectors(bio) : 0; |
441 | blk_fill_rwbs(__entry->rwbs, bio ? bio_op(bio) : 0, | 441 | blk_fill_rwbs(__entry->rwbs, bio ? bio_op(bio) : 0, |
442 | bio ? bio->bi_rw : 0, __entry->nr_sector); | 442 | bio ? bio->bi_opf : 0, __entry->nr_sector); |
443 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | 443 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); |
444 | ), | 444 | ), |
445 | 445 | ||
@@ -573,7 +573,7 @@ TRACE_EVENT(block_split, | |||
573 | __entry->dev = bio->bi_bdev->bd_dev; | 573 | __entry->dev = bio->bi_bdev->bd_dev; |
574 | __entry->sector = bio->bi_iter.bi_sector; | 574 | __entry->sector = bio->bi_iter.bi_sector; |
575 | __entry->new_sector = new_sector; | 575 | __entry->new_sector = new_sector; |
576 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_rw, | 576 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, |
577 | bio->bi_iter.bi_size); | 577 | bio->bi_iter.bi_size); |
578 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | 578 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); |
579 | ), | 579 | ), |
@@ -617,7 +617,7 @@ TRACE_EVENT(block_bio_remap, | |||
617 | __entry->nr_sector = bio_sectors(bio); | 617 | __entry->nr_sector = bio_sectors(bio); |
618 | __entry->old_dev = dev; | 618 | __entry->old_dev = dev; |
619 | __entry->old_sector = from; | 619 | __entry->old_sector = from; |
620 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_rw, | 620 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, |
621 | bio->bi_iter.bi_size); | 621 | bio->bi_iter.bi_size); |
622 | ), | 622 | ), |
623 | 623 | ||