diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-01-16 17:05:45 +0300 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-01-16 17:05:45 +0300 |
| commit | 5593edfbfa30a049fca9abbd70a834d2888a4d9d (patch) | |
| tree | a5c67524a82995fa17e44669c037fcced4fa91aa /include/linux/blkdev.h | |
| parent | 113ccc38378b6f0b24c0993040c6044e35163a51 (diff) | |
| parent | 49def1853334396f948dcb4cedb9347abb318df5 (diff) | |
| download | linux-5593edfbfa30a049fca9abbd70a834d2888a4d9d.tar.xz | |
Merge 4.10-rc4 into driver-core-next
We want the sysfs file revert and other fixes in here as well for
testing.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/blkdev.h')
| -rw-r--r-- | include/linux/blkdev.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 83695641bd5e..1ca8e8fd1078 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -739,7 +739,7 @@ static inline bool blk_queue_is_zoned(struct request_queue *q) } } -static inline unsigned int blk_queue_zone_size(struct request_queue *q) +static inline unsigned int blk_queue_zone_sectors(struct request_queue *q) { return blk_queue_is_zoned(q) ? q->limits.chunk_sectors : 0; } @@ -1000,6 +1000,19 @@ static inline unsigned int blk_rq_cur_sectors(const struct request *rq) return blk_rq_cur_bytes(rq) >> 9; } +/* + * Some commands like WRITE SAME have a payload or data transfer size which + * is different from the size of the request. Any driver that supports such + * commands using the RQF_SPECIAL_PAYLOAD flag needs to use this helper to + * calculate the data transfer size. + */ +static inline unsigned int blk_rq_payload_bytes(struct request *rq) +{ + if (rq->rq_flags & RQF_SPECIAL_PAYLOAD) + return rq->special_vec.bv_len; + return blk_rq_bytes(rq); +} + static inline unsigned int blk_queue_get_max_sectors(struct request_queue *q, int op) { @@ -1536,12 +1549,12 @@ static inline bool bdev_is_zoned(struct block_device *bdev) return false; } -static inline unsigned int bdev_zone_size(struct block_device *bdev) +static inline unsigned int bdev_zone_sectors(struct block_device *bdev) { struct request_queue *q = bdev_get_queue(bdev); if (q) - return blk_queue_zone_size(q); + return blk_queue_zone_sectors(q); return 0; } |
