UPSTREAM: f2fs: use finish zone command when closing a zone
Use the finish zone command first when a zone should be closed. Change-Id: Ie38800c2787392980f7914ad10b5f92f6d59e99b Signed-off-by: Daeho Jeong <daehojeong@google.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> (cherry picked from commit 3b7166121402a5062d18dcf4e3bce083fb9e4201)
This commit is contained in:
parent
b2d3a555d3
commit
88cccede6d
1 changed files with 13 additions and 6 deletions
|
|
@ -4851,12 +4851,19 @@ static int check_zone_write_pointer(struct f2fs_sb_info *sbi,
|
|||
GET_BLKOFF_FROM_SEG0(sbi, last_valid_block),
|
||||
wp_segno, wp_blkoff);
|
||||
|
||||
ret = blkdev_issue_zeroout(fdev->bdev, zone->wp,
|
||||
zone->len - (zone->wp - zone->start),
|
||||
GFP_NOFS, 0);
|
||||
if (ret)
|
||||
f2fs_err(sbi, "Fill up zone failed: %s (errno=%d)",
|
||||
fdev->path, ret);
|
||||
ret = blkdev_zone_mgmt(fdev->bdev, REQ_OP_ZONE_FINISH,
|
||||
zone->start, zone->len, GFP_NOFS);
|
||||
if (ret == -EOPNOTSUPP) {
|
||||
ret = blkdev_issue_zeroout(fdev->bdev, zone->wp,
|
||||
zone->len - (zone->wp - zone->start),
|
||||
GFP_NOFS, 0);
|
||||
if (ret)
|
||||
f2fs_err(sbi, "Fill up zone failed: %s (errno=%d)",
|
||||
fdev->path, ret);
|
||||
} else if (ret) {
|
||||
f2fs_err(sbi, "Finishing zone failed: %s (errno=%d)",
|
||||
fdev->path, ret);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue