Details
-
Bug
-
Resolution: Fixed
-
Critical
-
Lustre 2.8.0
-
None
-
3
-
9223372036854775807
Description
The IT_* definitions (e.g. IT_OPEN, IT_CREAT, etc) in include/obd.h are actually packed into ldlm_intent on the wire and are part of the network protocol (despite the incorrect comment there that they need to match with include/linux/namei.h.
These values should be moved (without changing the values!) into lustre_idl.h as a named enum with explicit 0x000n style assignments (see e.g. enum lfsck_event_flags, and then struct lookup_intent->it_op should be changed to use that enum. They also need to be explicitly checked in wirecheck.c and then wiretest.c should be regenerated using "make -c lustre/utils newwiretest" and the resulting files verified that they only add the new fields with the correct values.