summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-08-07 19:38:45 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-08-07 19:38:45 -0400
commit857953d72f3744f325de93320cc2673795e9ca89 (patch)
treeb4253224fd74148708bd1fb210e4155e22ee7b63 /include
parent635a4ba111e3bd0169fd549b24fe108b1f171713 (diff)
parent1eff9d322a444245c67515edb52bc0eb68374aa8 (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.h4
-rw-r--r--include/linux/blk-cgroup.h4
-rw-r--r--include/linux/blk_types.h37
-rw-r--r--include/linux/blkdev.h2
-rw-r--r--include/linux/fs.h3
-rw-r--r--include/linux/pagemap.h2
-rw-r--r--include/trace/events/bcache.h8
-rw-r--r--include/trace/events/block.h14
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
96static inline bool bio_mergeable(struct bio *bio) 96static 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
319static inline struct bio_integrity_payload *bio_integrity(struct bio *bio) 319static 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;
18typedef void (bio_end_io_t) (struct bio *); 18typedef void (bio_end_io_t) (struct bio *);
19typedef void (bio_destructor_t) (struct bio *); 19typedef void (bio_destructor_t) (struct bio *);
20 20
21enum 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 */
154enum rq_flag_bits { 144enum 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
232enum 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
242typedef unsigned int blk_qc_t; 243typedef 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 {
1672struct block_device_operations { 1672struct 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);
2480extern void make_bad_inode(struct inode *); 2480extern void make_bad_inode(struct inode *);
2481extern bool is_bad_inode(struct inode *); 2481extern bool is_bad_inode(struct inode *);
2482 2482
2483#ifdef CONFIG_BLOCK
2483static inline bool op_is_write(unsigned int op) 2484static 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)
510extern void end_page_writeback(struct page *page); 510extern void end_page_writeback(struct page *page);
511void wait_for_stable_page(struct page *page); 511void wait_for_stable_page(struct page *page);
512 512
513void page_endio(struct page *page, int op, int err); 513void 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