On Sat, 22 Jul 2023 22:45:23 +0530, Ojaswin Mujoo wrote: > Recently there was a regression found in the mballoc [1] due the existence > of deleted preallocations(PAs) in the per inode preallocation rbtree. > Such deleted PAs can occur because ext4_mb_discard_group_preallocations > traverses the grp->bb_prealloc_list and marks the PAs as deleted without > taking any inode specific locks like i_data_sem. > > Due to presence of such PAs, we were sometimes missing some of the pa > entries when traversing the per node rbtree in ext4_mb_use_preallocated. > Due to this, in some rare conditions we ended up missing a PA that did > overlap with our original request start. when this happens, we exit > ext4_mb_use_preallocated and proceed with the allocation. However, > during ext4_mb_normalize_request() we were hitting a bug on as > a PA that could satisfy our request already existed. Since normalize > request was already fixed earlier to account for the deleted PAs we > actually able to catch it there. > > [...] Applied, thanks! [1/1] ext4: Fix rbtree traversal bug in ext4_mb_use_preallocated commit: 9d3de7ee192a6a253f475197fe4d2e2af10a731f Best regards, -- Theodore Ts'o <tytso@xxxxxxx>