[PATCH 5/6] block: add zone attr. to zone mgmt IOCTL struct
Javier González
javier at javigon.com
Thu Jun 25 08:21:51 EDT 2020
From: Javier González <javier.gonz at samsung.com>
Add zone attributes field to the blk_zone structure. Use ZNS attributes
as base for zoned block devices in general.
Signed-off-by: Javier González <javier.gonz at samsung.com>
Signed-off-by: SelvaKumar S <selvakuma.s1 at samsung.com>
Signed-off-by: Kanchan Joshi <joshi.k at samsung.com>
Signed-off-by: Nitesh Shetty <nj.shetty at samsung.com>
---
drivers/nvme/host/zns.c | 1 +
include/uapi/linux/blkzoned.h | 13 ++++++++++++-
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/nvme/host/zns.c b/drivers/nvme/host/zns.c
index 258d03610cc0..7d8381fe7665 100644
--- a/drivers/nvme/host/zns.c
+++ b/drivers/nvme/host/zns.c
@@ -195,6 +195,7 @@ static int nvme_zone_parse_entry(struct nvme_ns *ns,
zone.capacity = nvme_lba_to_sect(ns, le64_to_cpu(entry->zcap));
zone.start = nvme_lba_to_sect(ns, le64_to_cpu(entry->zslba));
zone.wp = nvme_lba_to_sect(ns, le64_to_cpu(entry->wp));
+ zone.attr = entry->za;
return cb(&zone, idx, data);
}
diff --git a/include/uapi/linux/blkzoned.h b/include/uapi/linux/blkzoned.h
index 0c49a4b2ce5d..2e43a00e3425 100644
--- a/include/uapi/linux/blkzoned.h
+++ b/include/uapi/linux/blkzoned.h
@@ -82,6 +82,16 @@ enum blk_zone_report_flags {
BLK_ZONE_REP_CAPACITY = (1 << 0),
};
+/**
+ * Zone Attributes
+ */
+enum blk_zone_attr {
+ BLK_ZONE_ATTR_ZFC = 1 << 0,
+ BLK_ZONE_ATTR_FZR = 1 << 1,
+ BLK_ZONE_ATTR_RZR = 1 << 2,
+ BLK_ZONE_ATTR_ZDEV = 1 << 7,
+};
+
/**
* struct blk_zone - Zone descriptor for BLKREPORTZONE ioctl.
*
@@ -108,7 +118,8 @@ struct blk_zone {
__u8 cond; /* Zone condition */
__u8 non_seq; /* Non-sequential write resources active */
__u8 reset; /* Reset write pointer recommended */
- __u8 resv[4];
+ __u8 attr; /* Zone attributes */
+ __u8 resv[3];
__u64 capacity; /* Zone capacity in number of sectors */
__u8 reserved[24];
};
--
2.17.1
More information about the Linux-nvme
mailing list