f2fs: fix passing relative address when discard zones
authorDaeho Jeong <daehojeong@google.com>
Thu, 6 Apr 2023 22:11:04 +0000 (15:11 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 13 Apr 2023 23:37:57 +0000 (16:37 -0700)
We should not pass relative address in a zone to
__f2fs_issue_discard_zone().

Signed-off-by: Daeho Jeong <daehojeong@google.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/segment.c

index fc0734e4fb92bd337b971706234d14c5cc1a14bf..84e2e558ea99d5794df408375fbca2d87dfc213c 100644 (file)
@@ -4942,9 +4942,8 @@ static int fix_curseg_write_pointer(struct f2fs_sb_info *sbi, int type)
                            "New zone for curseg[%d] is not yet discarded. "
                            "Reset the zone: curseg[0x%x,0x%x]",
                            type, cs->segno, cs->next_blkoff);
-               err = __f2fs_issue_discard_zone(sbi, zbd->bdev,
-                               zone_sector >> log_sectors_per_block,
-                               zone.len >> log_sectors_per_block);
+               err = __f2fs_issue_discard_zone(sbi, zbd->bdev, cs_zone_block,
+                                       zone.len >> log_sectors_per_block);
                if (err) {
                        f2fs_err(sbi, "Discard zone failed: %s (errno=%d)",
                                 zbd->path, err);