1. 14 Aug, 2023 1 commit
    • Jaegeuk Kim's avatar
      Revert "f2fs: clean up w/ sbi->log_sectors_per_block" · 579c7e41
      Jaegeuk Kim authored
      This reverts commit bfd47662.
      
      Shinichiro Kawasaki reported:
      
      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.
      
      [1] https://lkml.kernel.org/linux-f2fs-devel/20230711050101.GA19128@lst.de/
      [2] https://lore.kernel.org/linux-f2fs-devel/20230804091556.2372567-1-shinichiro.kawasaki@wdc.com/
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarShinichiro Kawasaki <shinichiro.kawasaki@wdc.com>
      Fixes: bfd47662 ("f2fs: clean up w/ sbi->log_sectors_per_block")
      Reviewed-by: default avatarChao Yu <chao@kernel.org>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
      579c7e41
  2. 09 Jul, 2023 10 commits
  3. 08 Jul, 2023 29 commits