diff options
Diffstat (limited to 'block/blk-sysfs.c')
-rw-r--r-- | block/blk-sysfs.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c index 8a6d81afb284..8606c9543fdd 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c | |||
@@ -126,6 +126,21 @@ static ssize_t queue_io_opt_show(struct request_queue *q, char *page) | |||
126 | return queue_var_show(queue_io_opt(q), page); | 126 | return queue_var_show(queue_io_opt(q), page); |
127 | } | 127 | } |
128 | 128 | ||
129 | static ssize_t queue_discard_granularity_show(struct request_queue *q, char *page) | ||
130 | { | ||
131 | return queue_var_show(q->limits.discard_granularity, page); | ||
132 | } | ||
133 | |||
134 | static ssize_t queue_discard_max_show(struct request_queue *q, char *page) | ||
135 | { | ||
136 | return queue_var_show(q->limits.max_discard_sectors << 9, page); | ||
137 | } | ||
138 | |||
139 | static ssize_t queue_discard_zeroes_data_show(struct request_queue *q, char *page) | ||
140 | { | ||
141 | return queue_var_show(queue_discard_zeroes_data(q), page); | ||
142 | } | ||
143 | |||
129 | static ssize_t | 144 | static ssize_t |
130 | queue_max_sectors_store(struct request_queue *q, const char *page, size_t count) | 145 | queue_max_sectors_store(struct request_queue *q, const char *page, size_t count) |
131 | { | 146 | { |
@@ -293,6 +308,21 @@ static struct queue_sysfs_entry queue_io_opt_entry = { | |||
293 | .show = queue_io_opt_show, | 308 | .show = queue_io_opt_show, |
294 | }; | 309 | }; |
295 | 310 | ||
311 | static struct queue_sysfs_entry queue_discard_granularity_entry = { | ||
312 | .attr = {.name = "discard_granularity", .mode = S_IRUGO }, | ||
313 | .show = queue_discard_granularity_show, | ||
314 | }; | ||
315 | |||
316 | static struct queue_sysfs_entry queue_discard_max_entry = { | ||
317 | .attr = {.name = "discard_max_bytes", .mode = S_IRUGO }, | ||
318 | .show = queue_discard_max_show, | ||
319 | }; | ||
320 | |||
321 | static struct queue_sysfs_entry queue_discard_zeroes_data_entry = { | ||
322 | .attr = {.name = "discard_zeroes_data", .mode = S_IRUGO }, | ||
323 | .show = queue_discard_zeroes_data_show, | ||
324 | }; | ||
325 | |||
296 | static struct queue_sysfs_entry queue_nonrot_entry = { | 326 | static struct queue_sysfs_entry queue_nonrot_entry = { |
297 | .attr = {.name = "rotational", .mode = S_IRUGO | S_IWUSR }, | 327 | .attr = {.name = "rotational", .mode = S_IRUGO | S_IWUSR }, |
298 | .show = queue_nonrot_show, | 328 | .show = queue_nonrot_show, |
@@ -328,6 +358,9 @@ static struct attribute *default_attrs[] = { | |||
328 | &queue_physical_block_size_entry.attr, | 358 | &queue_physical_block_size_entry.attr, |
329 | &queue_io_min_entry.attr, | 359 | &queue_io_min_entry.attr, |
330 | &queue_io_opt_entry.attr, | 360 | &queue_io_opt_entry.attr, |
361 | &queue_discard_granularity_entry.attr, | ||
362 | &queue_discard_max_entry.attr, | ||
363 | &queue_discard_zeroes_data_entry.attr, | ||
331 | &queue_nonrot_entry.attr, | 364 | &queue_nonrot_entry.attr, |
332 | &queue_nomerges_entry.attr, | 365 | &queue_nomerges_entry.attr, |
333 | &queue_rq_affinity_entry.attr, | 366 | &queue_rq_affinity_entry.attr, |