On 08/04, Shinichiro Kawasaki wrote: > On May 23, 2023 / 20:35, Chao Yu wrote: > > Use sbi->log_sectors_per_block to clean up below calculated one: > > > > unsigned int log_sectors_per_block = sbi->log_blocksize - SECTOR_SHIFT; > > Hello Chao, > > When I ran workloads on f2fs using v6.5-rcX with fixes [1][2] and a zoned > block > devices with 4kb logical block size, I observe mount failure as follows. When > I revert this commit, the failure goes away. > > [ 167.781975][ T1555] F2FS-fs (dm-0): IO Block Size: 4 KB > [ 167.890728][ T1555] F2FS-fs (dm-0): Found nat_bits in checkpoint > [ 171.482588][ T1555] F2FS-fs (dm-0): Zone without valid block has non-zero > write pointer. Reset the write pointer: wp[0x1300,0x8] > [ 171.496000][ T1555] F2FS-fs (dm-0): (0) : Unaligned zone reset attempted > (block 280000 + 80000) > [ 171.505037][ T1555] F2FS-fs (dm-0): Discard zone failed: (errno=-5) > > The patch replaced "sbi->log_blocksize - SECTOR_SHIFT" with > "sbi->log_sectors_per_block". However, I think these two are not equal when > the > device has 4k logical block size. The former uses Linux kernel sector size 512 > byte. The latter use 512b sector size or 4kb sector size depending on the > device. mkfs.f2fs obtains logical block size via BLKSSZGET ioctl from the > device > and reflects it to the value sbi->log_sector_size_per_block. This causes > unexpected write pointer calculations in check_zone_write_pointer(). This > resulted in unexpected zone reset and the mount failure. > > I think this patch needs revert. What do you think?
Yeah, applied the revert. > > [1] https://lkml.kernel.org/linux-f2fs-devel/[email protected]/ > [2] > https://lore.kernel.org/linux-f2fs-devel/[email protected]/ _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
