Should finish zones if they are open.

Signed-off-by: Jaegeuk Kim <jaeg...@kernel.org>
---
 include/f2fs_fs.h   | 2 ++
 lib/libf2fs_zoned.c | 5 +++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/f2fs_fs.h b/include/f2fs_fs.h
index 3f5583d18329..15a1c82ae18f 100644
--- a/include/f2fs_fs.h
+++ b/include/f2fs_fs.h
@@ -1742,6 +1742,8 @@ blk_zone_cond_str(struct blk_zone *blkz)
  * Handle kernel zone capacity support
  */
 #define blk_zone_empty(z)      (blk_zone_cond(z) == BLK_ZONE_COND_EMPTY)
+#define blk_zone_open(z)       (blk_zone_cond(z) == BLK_ZONE_COND_IMP_OPEN ||  
\
+                                blk_zone_cond(z) == BLK_ZONE_COND_EXP_OPEN)
 #define blk_zone_sector(z)     (z)->start
 #define blk_zone_length(z)     (z)->len
 #define blk_zone_wp_sector(z)  (z)->wp
diff --git a/lib/libf2fs_zoned.c b/lib/libf2fs_zoned.c
index 221d7d1337c7..89ba5ad73a76 100644
--- a/lib/libf2fs_zoned.c
+++ b/lib/libf2fs_zoned.c
@@ -513,7 +513,7 @@ int f2fs_finish_zone(int i, void *blkzone)
        struct blk_zone_range range;
        int ret;
 
-       if (!blk_zone_seq(blkz) || blk_zone_empty(blkz))
+       if (!blk_zone_seq(blkz) || !blk_zone_open(blkz))
                return 0;
 
        /* Non empty sequential zone: finish */
@@ -522,7 +522,8 @@ int f2fs_finish_zone(int i, void *blkzone)
        ret = ioctl(dev->fd, BLKFINISHZONE, &range);
        if (ret != 0) {
                ret = -errno;
-               ERR_MSG("ioctl BLKFINISHZONE failed: errno=%d\n", errno);
+               ERR_MSG("ioctl BLKFINISHZONE failed: errno=%d, status=%s\n",
+                       errno, blk_zone_cond_str(blkz));
        }
 
        return ret;
-- 
2.46.0.76.ge559c4bf1a-goog



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to