Details
-
Bug
-
Resolution: Not a Bug
-
Trivial
-
Lustre 2.10.0
-
None
-
3
-
9223372036854775807
Description
I think we have a problem with inheritance in the following patch
http://review.whamcloud.com/#/c/19041/23/lustre/lod/lod_object.c,unified
from LU-7660
The problem code is below:
3117 +» /* if parent doesn't provide all defaults, striping from fs default */ 3118 +» if (d->lod_md_root != NULL && 3119 +» (lc->ldo_stripenr == 0 || 3120 +» lc->ldo_stripe_size == 0 || 3121 +» lc->ldo_stripe_offset == LOV_OFFSET_DEFAULT || 3122 +» lc->ldo_pool == NULL)) { 3123 +» » memset(lds, 0, sizeof(*lds)); 3124 +» » lod_get_default_lov_striping(env, d->lod_md_root, lds); 3125 +» » lod_striping_from_default(lc, lds, child_mode); 3126 +» }
while it is correct about stripe number, count and offset checks, it is not correct about pool check. Since pool is optional value, it is not right to ignore parent layout just because it has no pool.
For example, I set some striping on the directory and expect all files/subdirs inside to have the same striping, but in fact that will not work, striping will be taken from fs root. Moreover, default fs striping may have no pool as well but still be used prior the parent striping.
I've encountered such problem while porting DoM patches, because it is quite visible when DOM layout is used or not as expected
Attachments
Issue Links
- is related to
-
LU-7660 FS default striping settings only honored on MDT 0
- Resolved