On Mon, 27 Nov 2023 14:33:13 +0800, Baokun Li wrote: > For files with logical blocks close to EXT_MAX_BLOCKS, the file size > predicted in ext4_mb_normalize_request() may exceed EXT_MAX_BLOCKS. > This can cause some blocks to be preallocated that will not be used. > And after [Fixes], the following issue may be triggered: > > ========================================================= > kernel BUG at fs/ext4/mballoc.c:4653! > Internal error: Oops - BUG: 00000000f2000800 [#1] SMP > CPU: 1 PID: 2357 Comm: xfs_io 6.7.0-rc2-00195-g0f5cc96c367f > Hardware name: linux,dummy-virt (DT) > pc : ext4_mb_use_inode_pa+0x148/0x208 > lr : ext4_mb_use_inode_pa+0x98/0x208 > Call trace: > ext4_mb_use_inode_pa+0x148/0x208 > ext4_mb_new_inode_pa+0x240/0x4a8 > ext4_mb_use_best_found+0x1d4/0x208 > ext4_mb_try_best_found+0xc8/0x110 > ext4_mb_regular_allocator+0x11c/0xf48 > ext4_mb_new_blocks+0x790/0xaa8 > ext4_ext_map_blocks+0x7cc/0xd20 > ext4_map_blocks+0x170/0x600 > ext4_iomap_begin+0x1c0/0x348 > ========================================================= > > [...] Applied, thanks! [1/1] ext4: prevent the normalized size from exceeding EXT_MAX_BLOCKS commit: 2dcf5fde6dffb312a4bfb8ef940cea2d1f402e32 Best regards, -- Theodore Ts'o <tytso@xxxxxxx>