Should finish zones if they are open.
Signed-off-by: Jaegeuk Kim <[email protected]>
---
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel