Re: [PATCH 0/1] ext4: Fix regression in mballoc due to deleted inode PAs in rbtree

From: Theodore Ts'o
Date: Sun Jul 23 2023 - 08:38:16 EST



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>