[PATCH v4 0/2] f2fs: Add sanity checks before unlinking and loading inodes

Nikola Z. Ivanov posted 2 patches 1 month, 2 weeks ago
fs/f2fs/inode.c |  6 ++++++
fs/f2fs/namei.c | 29 ++++++++++++++++++-----------
2 files changed, 24 insertions(+), 11 deletions(-)
[PATCH v4 0/2] f2fs: Add sanity checks before unlinking and loading inodes
Posted by Nikola Z. Ivanov 1 month, 2 weeks ago
This series is provoked by syzbot warnings caused by corrupted directory
inode with i_nlink == 1 that passes the initial sanity check which will
only mark the filesystem as corrupted in case i_nlink == 0.

Tests:
- fio/fsmark parallel create/unlink on VM with f2fs root filesystem.
- syzbot

Changelog:
  Changes from v1:
  - Rename exit label in f2fs_unlink().
  - Add sanity check in sanity_check_inode() and remove it from f2fs_iget()
    as suggested by Chao Yu in order to detect on-disk corruption early.
  https://lore.kernel.org/linux-f2fs-devel/d4b7c03c-6554-4407-b823-aecfcdf7dc3f@kernel.org/T/#t

  Changes from v2:
  - Remove i_nlink == 0 check from sanity_check_inode.
  - Wrap i_nlink == 1 in unlikely() marco.
  https://lore.kernel.org/linux-f2fs-devel/1f519357-a489-41fe-8159-a8e319aedd17@kernel.org/T/#u

  Changes from v3:
  - Replace F2FS_I_SB(inode) with already obtained f2fs_sb_info pointer.
  https://lore.kernel.org/linux-f2fs-devel/4de88613-54a2-4ef3-9b56-7963cd3e42e6@kernel.org/T/#u

Nikola Z. Ivanov (2):
  f2fs: Rename f2fs_unlink exit label
  f2fs: Add sanity checks before unlinking and loading  inodes

 fs/f2fs/inode.c |  6 ++++++
 fs/f2fs/namei.c | 29 ++++++++++++++++++-----------
 2 files changed, 24 insertions(+), 11 deletions(-)

-- 
2.51.0