4 An 'mdt_rec_reint' structure specifies the generic form for MDS_REINT
5 requests. Each sub-operation, as defned by the 'rr_opcode' field, has
6 its own variant of this structure. Each variant has the same size as
7 the generic 'mdt_rec_reint', but interprets its fields slightly
8 differently. Note that in order for swabbing to take place correctly
9 the sequence of field sizes must the same in every variant as it is in
10 the generic version (not just the overal size of the sturcture).
13 struct mdt_rec_reint {
24 struct lu_fid rr_fid1;
25 struct lu_fid rr_fid2;
36 __u32 rr_padding_4; /* also fix lustre_swab_mdt_rec_reint */
40 The 'rr_opcode' field defines one among the several sub-commands for
41 MDS REINT RPCs. Those opcodes are:
55 Based on that opcode one of the variants of the structure will
56 actually be used. See <<mds-reint-setattr-rpc>> for one example.
58 The 'rr_cap' field is not used (and has been dropped in more recent
61 The 'rr_fsuid' field gives the UID of the file system mount point.
63 The 'rr_fsuid_h' field gives the high bytes of a the file system mount
64 point UID in an environment where UIDs are 64-bit. The same holds for
65 the other '_h' fields.
67 The 'rr_fsgid' field gives the GID of the file system mount point.
68 For each opcode there is a variant of the 'mdt_rec_reint' that has
69 identical byte fields, but slightly modified semantics. The following
70 is for the REINT_SETATTR sub-operation.
72 The 'rr_suppgid1' and 'rr_suppgid2' fields are supplementary GID
73 information for kernels that have it.
75 The 'rr_fid1' and 'rr_fid2' fields specify the file IDs for the
76 resources being operated upon. If only one resource is being acted
77 upon then 'rr_fid2' is not used.
79 The 'rr_mtime' 'rr_atime' and 'rr_ctime' fields give the values of the
80 time attributes. The 'obd_time' type is also a '__u64'.
82 The 'rr_size' field gives the value of the size attribute.
84 The 'rr_blocks' field gives the value of the number-of-blocks
87 The 'rr_bias' field adds additional optional information to the
88 REINT. The possible values are:
92 MDS_CHECK_SPLIT = 1 << 0,
93 MDS_CROSS_REF = 1 << 1,
94 MDS_VTX_BYPASS = 1 << 2,
95 MDS_PERM_BYPASS = 1 << 3,
97 MDS_QUOTA_IGNORE = 1 << 5,
98 MDS_KEEP_ORPHAN = 1 << 7,
99 MDS_RECOV_OPEN = 1 << 8,
100 MDS_DATA_MODIFIED = 1 << 9,
101 MDS_CREATE_VOLATILE = 1 << 10,
102 MDS_OWNEROVERRIDE = 1 << 11,
103 MDS_HSM_RELEASE = 1 << 12,
107 For example, MDS_DATA_MODIFIED signals to the HSM system that the MDT
108 should set the corresponding HSM extended attribute. We'll return to
109 this topic with more details about the individual flags at a later
112 The 'rr_mode' field gives the value of the mode attribute.
114 The 'rr_flags' and 'rr_flags_h' fields give the value (and the high
115 order bytes of the value, respectively, if there are high order bytes)
116 of the flags attribute.
118 The 'rr_umask' gives the value of the 'umask' to apply in, for
119 example, a REINT_CREATE.