On Mon, 2017-03-20 at 16:43 -0400, Christoph Hellwig wrote:
> diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
> index 5a7da607ca04..3b3bd646f580 100644
> --- a/include/linux/blkdev.h
> +++ b/include/linux/blkdev.h
> @@ -333,6 +333,7 @@ struct queue_limits {
> unsigned short max_segments;
> unsigned short max_integrity_segments;
> unsigned short max_discard_segments;
> + unsigned int max_discard_segment_size;
>
> unsigned char misaligned;
> unsigned char discard_misaligned;
> @@ -1150,6 +1151,8 @@ extern void blk_queue_max_segments(struct request_queue
> *, unsigned short);
> extern void blk_queue_max_discard_segments(struct request_queue *,
> unsigned short);
> extern void blk_queue_max_segment_size(struct request_queue *, unsigned int);
> +extern void blk_queue_max_discard_segment_size(struct request_queue *,
> + unsigned int);
> extern void blk_queue_max_discard_sectors(struct request_queue *q,
> unsigned int max_discard_sectors);
> extern void blk_queue_max_write_same_sectors(struct request_queue *q,
> @@ -1415,6 +1418,11 @@ static inline unsigned int
> queue_max_segment_size(struct request_queue *q)
> return q->limits.max_segment_size;
> }
>
> +static inline unsigned int queue_max_discard_segment_size(struct
> request_queue *q)
> +{
> + return q->limits.max_discard_segment_size;
> +}
> +
> static inline unsigned short queue_logical_block_size(struct request_queue
> *q)
> {
> int retval = 512;
Hello Christoph,
It's probably a good idea to add a comment somewhere that the unit of
max_discard_segment_size is one byte.
Additionally, should it be mentioned in the commit message that this
patch limits the maximum discard segment size to 4 GB?
Thanks,
Bart.