Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> 于2023年9月22日周五 17:27写道: > > On Fri, Sep 22, 2023 at 10:54:58AM +0800, zhangshida wrote: > > From: Shida Zhang <zhangshida@xxxxxxxxxx> > > > > [ Upstream commit 7fda67e8c3ab6069f75888f67958a6d30454a9f6 ] > > > > With the configuration PAGE_SIZE 64k and filesystem blocksize 64k, > > a problem occurred when more than 13 million files were directly created > > under a directory: > > > > EXT4-fs error (device xx): ext4_dx_csum_set:492: inode #xxxx: comm xxxxx: dir seems corrupt? Run e2fsck -D. > > EXT4-fs error (device xx): ext4_dx_csum_verify:463: inode #xxxx: comm xxxxx: dir seems corrupt? Run e2fsck -D. > > EXT4-fs error (device xx): dx_probe:856: inode #xxxx: block 8188: comm xxxxx: Directory index failed checksum > > > > When enough files are created, the fake_dirent->reclen will be 0xffff. > > it doesn't equal to the blocksize 65536, i.e. 0x10000. > > > > But it is not the same condition when blocksize equals to 4k. > > when enough files are created, the fake_dirent->reclen will be 0x1000. > > it equals to the blocksize 4k, i.e. 0x1000. > > > > The problem seems to be related to the limitation of the 16-bit field > > when the blocksize is set to 64k. > > To address this, helpers like ext4_rec_len_{from,to}_disk has already > > been introduced to complete the conversion between the encoded and the > > plain form of rec_len. > > > > So fix this one by using the helper, and all the other in this file too. > > > > Cc: stable@xxxxxxxxxx > > Fixes: dbe89444042a ("ext4: Calculate and verify checksums for htree nodes") > > Suggested-by: Andreas Dilger <adilger@xxxxxxxxx> > > Suggested-by: Darrick J. Wong <djwong@xxxxxxxxxx> > > Signed-off-by: Shida Zhang <zhangshida@xxxxxxxxxx> > > Reviewed-by: Andreas Dilger <adilger@xxxxxxxxx> > > Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> > > Link: https://lore.kernel.org/r/20230803060938.1929759-1-zhangshida@xxxxxxxxxx > > Signed-off-by: Theodore Ts'o <tytso@xxxxxxx> > > Signed-off-by: Shida Zhang <zhangshida@xxxxxxxxxx> > > --- > > fs/ext4/namei.c | 26 +++++++++++++++----------- > > 1 file changed, 15 insertions(+), 11 deletions(-) > > > > What stable kernel tree(s) are you asking for this to be applied to? > > thanks, > > greg k-h This one is intended for 4.14.y. And the other one from zhangshida@xxxxxxxxxx is for 4.19.y. Apologies for this confusion. It appears that the '--subject-prefix' option of the 'git send-email' command does not work with the local patch file. BTW, I forgot to CC my Gmail address in another thread, so I reply here only. Best regards, Shida