aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2020-12-28 10:41:09 -0800
committerJaegeuk Kim <jaegeuk@kernel.org>2020-12-28 10:57:41 -0800
commit73c08716410c73194cf1b70d1228839c542ce088 (patch)
tree7230dbcf7048a76a6c2f24eec881e196da4194a9
parent9cb5150afa528b174d42eec7b4bb49ef0b0eb725 (diff)
downloadf2fs-tools-73c08716410c73194cf1b70d1228839c542ce088.tar.gz
libzoned: use blk_zone_v2 and blk_zone_report_v2 by default
Old blk_zone and blk_zone_report should be compatible with v2. And, old blk_zone_report uses reserved[4] which breaks the build. struct blk_zone_report { __u64 sector; __u32 nr_zones; __u8 reserved[4]; struct blk_zone zones[0]; }; Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r--include/f2fs_fs.h49
1 files changed, 24 insertions, 25 deletions
diff --git a/include/f2fs_fs.h b/include/f2fs_fs.h
index ccf1e2b..a51a359 100644
--- a/include/f2fs_fs.h
+++ b/include/f2fs_fs.h
@@ -1358,6 +1358,30 @@ static inline int get_inline_xattr_addrs(struct f2fs_inode *inode)
#ifdef HAVE_LINUX_BLKZONED_H
+/* Let's just use v2, since v1 should be compatible with v2 */
+#define BLK_ZONE_REP_CAPACITY (1 << 0)
+struct blk_zone_v2 {
+ __u64 start; /* Zone start sector */
+ __u64 len; /* Zone length in number of sectors */
+ __u64 wp; /* Zone write pointer position */
+ __u8 type; /* Zone type */
+ __u8 cond; /* Zone condition */
+ __u8 non_seq; /* Non-sequential write resources active */
+ __u8 reset; /* Reset write pointer recommended */
+ __u8 resv[4];
+ __u64 capacity; /* Zone capacity in number of sectors */
+ __u8 reserved[24];
+};
+#define blk_zone blk_zone_v2
+
+struct blk_zone_report_v2 {
+ __u64 sector;
+ __u32 nr_zones;
+ __u32 flags;
+ struct blk_zone zones[0];
+};
+#define blk_zone_report blk_zone_report_v2
+
#define blk_zone_type(z) (z)->type
#define blk_zone_conv(z) ((z)->type == BLK_ZONE_TYPE_CONVENTIONAL)
#define blk_zone_seq_req(z) ((z)->type == BLK_ZONE_TYPE_SEQWRITE_REQ)
@@ -1407,31 +1431,6 @@ blk_zone_cond_str(struct blk_zone *blkz)
/*
* Handle kernel zone capacity support
*/
-#ifdef HAVE_BLK_ZONE_REP_V2
-#define BLK_ZONE_REP_CAPACITY (1 << 0)
-struct blk_zone_v2 {
- __u64 start; /* Zone start sector */
- __u64 len; /* Zone length in number of sectors */
- __u64 wp; /* Zone write pointer position */
- __u8 type; /* Zone type */
- __u8 cond; /* Zone condition */
- __u8 non_seq; /* Non-sequential write resources active */
- __u8 reset; /* Reset write pointer recommended */
- __u8 resv[4];
- __u64 capacity; /* Zone capacity in number of sectors */
- __u8 reserved[24];
-};
-#define blk_zone blk_zone_v2
-
-struct blk_zone_report_v2 {
- __u64 sector;
- __u32 nr_zones;
- __u32 flags;
-struct blk_zone zones[0];
-};
-#define blk_zone_report blk_zone_report_v2
-#endif /* HAVE_BLK_ZONE_REP_V2 */
-
#define blk_zone_empty(z) (blk_zone_cond(z) == BLK_ZONE_COND_EMPTY)
#define blk_zone_sector(z) (z)->start
#define blk_zone_length(z) (z)->len