Details
-
Technical task
-
Resolution: Unresolved
-
Medium
-
None
-
None
-
3
-
9223372036854775807
Description
Add llapi validation and kernel layout support for LCME_FL_IMMEDIATE, following the EC pattern (Gerrit 61962, commit 77982cf6b6).
llapi (liblustreapi_layout.c, lustreapi.h):
- Layout validation for immediate mirror components
- Mutual exclusion: LCME_FL_IMMEDIATE and LCME_FL_PARITY cannot coexist on the same component
- Validation that immediate mirrors have >= 2 mirrors
Kernel layout passthrough:
- LOD (lod_lov.c, lod_object.c): verify LCME_FL_IMMEDIATE flows through lod_parse_striping/lod_generate_lovea and default layout propagation via LCME_TEMPLATE_FLAGS
- LOV (lov_ea.c, lov_internal.h): add lsme_is_immediate() and lre_immediate helpers, verify flag flows through composite layout init
- Wire format (pack_generic.c): verify no new fields needed
Tests (llapi_layout_test.c):
- Create layout with LCME_FL_IMMEDIATE via llapi
- Verify flag round-trips through get/set
- Verify IMMEDIATE + PARITY mutual exclusion
- Verify rejection with < 2 mirrors
- Verify kernel stores and returns the flag
Reference EC patches:
- Gerrit 61962 (commit 77982cf6b6): LU-12187 llapi: EC layout creation support (pattern – 14 files, 1856 lines)
Note: IWM version will be much smaller than EC – EC needed RAID set math, stripe count derivation, and parity binding. IWM just needs flag validation and passthrough.