Skip to content

Commit 3b71661

Browse files
Daeho JeongJaegeuk Kim
authored andcommitted
f2fs: use finish zone command when closing a zone
Use the finish zone command first when a zone should be closed. Signed-off-by: Daeho Jeong <daehojeong@google.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
1 parent 091a4df commit 3b71661

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

fs/f2fs/segment.c

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4948,12 +4948,19 @@ static int check_zone_write_pointer(struct f2fs_sb_info *sbi,
49484948
GET_BLKOFF_FROM_SEG0(sbi, last_valid_block),
49494949
wp_segno, wp_blkoff);
49504950

4951-
ret = blkdev_issue_zeroout(fdev->bdev, zone->wp,
4952-
zone->len - (zone->wp - zone->start),
4953-
GFP_NOFS, 0);
4954-
if (ret)
4955-
f2fs_err(sbi, "Fill up zone failed: %s (errno=%d)",
4956-
fdev->path, ret);
4951+
ret = blkdev_zone_mgmt(fdev->bdev, REQ_OP_ZONE_FINISH,
4952+
zone->start, zone->len, GFP_NOFS);
4953+
if (ret == -EOPNOTSUPP) {
4954+
ret = blkdev_issue_zeroout(fdev->bdev, zone->wp,
4955+
zone->len - (zone->wp - zone->start),
4956+
GFP_NOFS, 0);
4957+
if (ret)
4958+
f2fs_err(sbi, "Fill up zone failed: %s (errno=%d)",
4959+
fdev->path, ret);
4960+
} else if (ret) {
4961+
f2fs_err(sbi, "Finishing zone failed: %s (errno=%d)",
4962+
fdev->path, ret);
4963+
}
49574964

49584965
return ret;
49594966
}

0 commit comments

Comments
 (0)