Whamcloud - gitweb
LU-16843 ldiskfs: merge extent blocks
authorAlex Zhuravlev <bzzz@whamcloud.com>
Tue, 7 Nov 2023 14:56:16 +0000 (17:56 +0300)
committerAndreas Dilger <adilger@whamcloud.com>
Thu, 9 Nov 2023 08:38:11 +0000 (08:38 +0000)
commitb1d7c494144ac653ef8dd2a5a7e626d988ad8bfd
tree0b3b27c1121b7d95fb567342164e2d4dbc49f380
parentf7b5f2f6145738b33a9fddc08c2b25c34e2f6be5
LU-16843 ldiskfs: merge extent blocks

There are cases (e.g. file written synchronously with discontiguous
blocks that are later filled in) when a lot of extents are created
initially, then the extents get merged over time, but there is no
way to merge the index blocks.  This can cause a very deep extent
index tree (above 5 levels) and cause problems like:

inode has invalid extent depth: 6

Merge leave/index blocks (one at each level at most) to right/left
when extents are removed from the index.

submitted to ext4@ maillist:
https://lore.kernel.org/linux-ext4/
7A2B8861-96AA-4815-BB58-180F63F62436@whamcloud.com/

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I09dfab193d82e7c99620ddb95aff2015023f73aa
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/52301
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
ldiskfs/kernel_patches/patches/rhel7.9/ext4-ext-merge.patch [new file with mode: 0644]
ldiskfs/kernel_patches/patches/rhel8/ext4-ext-merge.patch [new file with mode: 0644]
ldiskfs/kernel_patches/series/ldiskfs-3.10-rhel7.9.series
ldiskfs/kernel_patches/series/ldiskfs-4.12-sles15sp1-7.series
ldiskfs/kernel_patches/series/ldiskfs-4.12-sles15sp1.series
ldiskfs/kernel_patches/series/ldiskfs-4.18-rhel8.7.series
ldiskfs/kernel_patches/series/ldiskfs-4.18-rhel8.8.series