|
@@ -257,6 +257,18 @@ QUEUE_SYSFS_BIT_FNS(random, ADD_RANDOM, 0);
|
|
|
QUEUE_SYSFS_BIT_FNS(iostats, IO_STAT, 0);
|
|
|
#undef QUEUE_SYSFS_BIT_FNS
|
|
|
|
|
|
+static ssize_t queue_zoned_show(struct request_queue *q, char *page)
|
|
|
+{
|
|
|
+ switch (blk_queue_zoned_model(q)) {
|
|
|
+ case BLK_ZONED_HA:
|
|
|
+ return sprintf(page, "host-aware\n");
|
|
|
+ case BLK_ZONED_HM:
|
|
|
+ return sprintf(page, "host-managed\n");
|
|
|
+ default:
|
|
|
+ return sprintf(page, "none\n");
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
static ssize_t queue_nomerges_show(struct request_queue *q, char *page)
|
|
|
{
|
|
|
return queue_var_show((blk_queue_nomerges(q) << 1) |
|
|
@@ -485,6 +497,11 @@ static struct queue_sysfs_entry queue_nonrot_entry = {
|
|
|
.store = queue_store_nonrot,
|
|
|
};
|
|
|
|
|
|
+static struct queue_sysfs_entry queue_zoned_entry = {
|
|
|
+ .attr = {.name = "zoned", .mode = S_IRUGO },
|
|
|
+ .show = queue_zoned_show,
|
|
|
+};
|
|
|
+
|
|
|
static struct queue_sysfs_entry queue_nomerges_entry = {
|
|
|
.attr = {.name = "nomerges", .mode = S_IRUGO | S_IWUSR },
|
|
|
.show = queue_nomerges_show,
|
|
@@ -546,6 +563,7 @@ static struct attribute *default_attrs[] = {
|
|
|
&queue_discard_zeroes_data_entry.attr,
|
|
|
&queue_write_same_max_entry.attr,
|
|
|
&queue_nonrot_entry.attr,
|
|
|
+ &queue_zoned_entry.attr,
|
|
|
&queue_nomerges_entry.attr,
|
|
|
&queue_rq_affinity_entry.attr,
|
|
|
&queue_iostats_entry.attr,
|