Whamcloud - gitweb
LU-18080 ldiskfs: add NO_CHECKS flags for ext4_iget 96/55896/5
authorLi Dongyang <dongyangli@ddn.com>
Wed, 31 Jul 2024 12:03:32 +0000 (22:03 +1000)
committerOleg Drokin <green@whamcloud.com>
Fri, 16 Aug 2024 23:49:58 +0000 (23:49 +0000)
commita7239d80fc92380a5a56ff1b0adb99d349f9a0dc
tree0d1a491e316f4af847ce84ee90459ad6ebdabb0a
parentc2aa57e0bc1fec644cff6bf794d2f0b3d60ad210
LU-18080 ldiskfs: add NO_CHECKS flags for ext4_iget

Since v6.4-rc4-1-gb3e6bcb94590, the upstream kernel introduced
a strict checking of EXT4_IGET_EA_INODE and it has to match the
EXT4_EA_INODE_FL from the inode.

This creates a problem for osd scrub as we iterate over the inodes
according to bitmap we have no idea if the inode is an ea_inode or
not.

Add a new flag EXT4_IGET_NO_CHECKS and relax the strict checking
when the flag is used.

Cleanup osd_ldiskfs_iget_special(), the caller of osd_iget() now are
passing in the additional flags to ext4_iget().

Test-Parameters: trivial
Test-Parameters: fstype=ldiskfs serverdistro=el9.4 testlist=conf-sanity env=ONLY=32a
Signed-off-by: Li Dongyang <dongyangli@ddn.com>
Change-Id: I43c8da68b06c5592e197dd3b5e3f4f7c842cf7c4
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/55896
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Shuichi Ihara <sihara@ddn.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Reviewed-by: Li Xi <lixi@ddn.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
12 files changed:
config/lustre-build-ldiskfs.m4
ldiskfs/kernel_patches/patches/rhel9.4/ext4-add-IGET_NO_CHECKS-flag.patch [new file with mode: 0644]
ldiskfs/kernel_patches/series/ldiskfs-5.14-rhel9.4.series
ldiskfs/kernel_patches/series/ldiskfs-5.15.0-106-ubuntu20.series
ldiskfs/kernel_patches/series/ldiskfs-6.10-ml.series
ldiskfs/kernel_patches/series/ldiskfs-6.6-ml.series
ldiskfs/kernel_patches/series/ldiskfs-6.7-ml.series
lustre/osd-ldiskfs/osd_compat.c
lustre/osd-ldiskfs/osd_handler.c
lustre/osd-ldiskfs/osd_internal.h
lustre/osd-ldiskfs/osd_oi.c
lustre/osd-ldiskfs/osd_scrub.c