[LU-896] change e2fsprogs to make it allow directories over 2GB Created: 04/Dec/11  Updated: 10/Sep/16  Resolved: 10/Sep/16

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.2.0
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Liang Zhen (Inactive) Assignee: WC Triage
Resolution: Duplicate Votes: 0
Labels: e2fsprogs

Issue Links:
Duplicate
duplicates LU-1365 Implement ldiskfs LARGEDIR support fo... Resolved
Related
is related to LU-50 pdirops patch for ldiskfs Resolved
is related to LU-6030 cleanup for ldiskfs patches Resolved
Rank (Obsolete): 10086

 Description   

Parallel Directory Operation patch (LU-50, http://review.whamcloud.com/#change,375) will support 3-level directory which requires directory size over 2G, besides code change for htree of ext4/ldiskfs, we also need to use i_size_high to store size of directory. This requires change to e2fsprogs to make it understand it.
We've added feature EXT4_FEATURE_RO_COMPAT_LARGEDIR to ldiskfs to prevent kernel/e2fsprogs that only support 2-level to modify 3-level directories, this should also be added to e2fsprogs.



 Comments   
Comment by Andreas Dilger [ 04/Dec/11 ]

I was thinking about this further. It seems that this needs to be an INCOMPAT feature. The reason is that the old code used only frame->at[2] to do tree traversal. This prevents the old code from even trying to access a 3-level tree I think, so RO_COMPAT is not enough in this case

That said I guess that this feature as described is only for 2GB directories, but I don't know if that is useful without 3-level htree, so I'm not sure if it is worthwhile to have two separate features?

Comment by Andreas Dilger [ 06/Feb/12 ]

The kernel patch checks for INCOMPAT_LARGEDIR before using directories over 2GB or with more than 2-level htree. This means the 2.2 ldiskfs is safe to use even without this patch in e2fsprogs, because nothing should be able to set INCOMPAT_LARGEDIR until e2fsprogs is updated. This will also give us compatibility with 2.3 if the LARGEDIR feature can be enabled with newer e2fsprogs, but Lustre needs to be downgraded for some reason.

Generated at Sat Feb 10 01:11:27 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.