Hi Chao Yu, > >--------- Original Message --------- >Sender : Chao Yu <c...@kernel.org> >Date : 2024-07-04 16:16 (GMT+9) >Title : Re: [PATCH] f2fs: fix null reference error when checking end of zone > >On 2024/7/4 9:01, Daejun Park wrote: >> This patch fixes a potentially null pointer being accessed by >> is_end_zone_blkaddr() that checks the last block of a zone >> when f2fs is mounted as a single device. > >blkzoned feature depends on multiple device feature? One regular >device and one seq-zone device?
According to mkfs.f2fs, if there are a sufficient number of conventional zones, a single zoned device can be used. Thanks, Daejun > >Thanks, > >> >> Fixes: e067dc3c6b9c ("f2fs: maintain six open zones for zoned devices") >> Signed-off-by: Daejun Park <daejun7.p...@samsung.com> >> --- >> fs/f2fs/data.c 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c >> index b6dcb3bcaef7..1aa7eefa659c 100644 >> --- a/fs/f2fs/data.c >> +++ b/fs/f2fs/data.c >> @@ -925,6 +925,7 @@ int f2fs_merge_page_bio(struct f2fs_io_info *fio) >> #ifdef CONFIG_BLK_DEV_ZONED >> static bool is_end_zone_blkaddr(struct f2fs_sb_info *sbi, block_t blkaddr) >> { >> + struct block_device *bdev = sbi->sb->s_bdev; >> int devi = 0; >> >> if (f2fs_is_multi_device(sbi)) { >> @@ -935,8 +936,9 @@ static bool is_end_zone_blkaddr(struct f2fs_sb_info >> *sbi, block_t blkaddr) >> return false; >> } >> blkaddr -= FDEV(devi).start_blk; >> + bdev = FDEV(devi).bdev; >> } >> - return bdev_is_zoned(FDEV(devi).bdev) && >> + return bdev_is_zoned(bdev) && >> f2fs_blkz_is_seq(sbi, devi, blkaddr) && >> (blkaddr % sbi->blocks_per_blkz == sbi->blocks_per_blkz - >>1); >> } _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel