diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2020-12-28 10:41:09 -0800 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2020-12-28 10:57:41 -0800 |
commit | 73c08716410c73194cf1b70d1228839c542ce088 (patch) | |
tree | 7230dbcf7048a76a6c2f24eec881e196da4194a9 | |
parent | 9cb5150afa528b174d42eec7b4bb49ef0b0eb725 (diff) | |
download | f2fs-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.h | 49 |
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 |