libzoned: use blk_zone_v2 and blk_zone_report_v2 by default
authorJaegeuk Kim <jaegeuk@kernel.org>
Mon, 28 Dec 2020 18:41:09 +0000 (10:41 -0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 28 Dec 2020 18:57:41 +0000 (10:57 -0800)
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>
include/f2fs_fs.h

index ccf1e2b..a51a359 100644 (file)
@@ -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