diff options
Diffstat (limited to 'include/linux/blkdev.h')
-rw-r--r-- | include/linux/blkdev.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index e727f6c44c44..784a919aa0d0 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -322,6 +322,7 @@ struct queue_limits { | |||
322 | unsigned char misaligned; | 322 | unsigned char misaligned; |
323 | unsigned char discard_misaligned; | 323 | unsigned char discard_misaligned; |
324 | unsigned char no_cluster; | 324 | unsigned char no_cluster; |
325 | signed char discard_zeroes_data; | ||
325 | }; | 326 | }; |
326 | 327 | ||
327 | struct request_queue | 328 | struct request_queue |
@@ -1150,6 +1151,19 @@ static inline int queue_sector_discard_alignment(struct request_queue *q, | |||
1150 | & (q->limits.discard_granularity - 1); | 1151 | & (q->limits.discard_granularity - 1); |
1151 | } | 1152 | } |
1152 | 1153 | ||
1154 | static inline unsigned int queue_discard_zeroes_data(struct request_queue *q) | ||
1155 | { | ||
1156 | if (q->limits.discard_zeroes_data == 1) | ||
1157 | return 1; | ||
1158 | |||
1159 | return 0; | ||
1160 | } | ||
1161 | |||
1162 | static inline unsigned int bdev_discard_zeroes_data(struct block_device *bdev) | ||
1163 | { | ||
1164 | return queue_discard_zeroes_data(bdev_get_queue(bdev)); | ||
1165 | } | ||
1166 | |||
1153 | static inline int queue_dma_alignment(struct request_queue *q) | 1167 | static inline int queue_dma_alignment(struct request_queue *q) |
1154 | { | 1168 | { |
1155 | return q ? q->dma_alignment : 511; | 1169 | return q ? q->dma_alignment : 511; |