3 [[struct-mdt-rec-reint]]
5 An 'mdt_rec_reint' structure specifies the generic form for MDS_REINT
6 requests. Each sub-operation, as defned by the 'rr_opcode' field, has
7 its own variant of this structure. Each variant has the same size as
8 the generic 'mdt_rec_reint', but interprets its fields slightly
9 differently. Note that in order for swabbing to take place correctly
10 the sequence of field sizes must the same in every variant as it is in
11 the generic version (not just the overal size of the sturcture).
15 struct mdt_rec_reint {
26 struct lu_fid rr_fid1;
27 struct lu_fid rr_fid2;
38 __u32 rr_padding_4; /* also fix lustre_swab_mdt_rec_reint */
42 The 'rr_opcode' field defines one among the several sub-commands for
43 MDS REINT RPCs. See the list above. Based on that opcode one of the
44 variants of the structure will actually be used. See
45 <<mds-reint-setattr-rpc>> for one example.
47 The 'rr_cap' field is not used (and has been dropped in more recent
50 The 'rr_fsuid' field gives the UID of the file system mount point.
52 The 'rr_fsuid_h' field gives the high bytes of a the file system mount
53 point UID in an environment where UIDs are 64-bit. The same holds for
54 the other '_h' fields.
56 The 'rr_fsgid' field gives the GID of the file system mount point.
58 The 'rr_suppgid1' and 'rr_suppgid2' fields are supplementary GID
59 information for kernels that have it.
61 The 'rr_fid1' and 'rr_fid2' fields specify the FIDs (See
62 <<struct-lu-fid>>) for the resources being operated upon. If only one
63 resource is being acted upon then 'rr_fid2' is not used.
65 The 'rr_mtime', 'rr_atime', and 'rr_ctime' fields give the object
66 timestamps in microseconds for the last modification time, the last
67 access time, and the last metadata change time, respectively.
69 The 'rr_size' field gives the value of the size attribute.
71 The 'rr_blocks' field gives the value of the number-of-blocks
74 The 'rr_bias' field adds additional optional information to the
75 REINT. The possible values are:
82 MDS_CHECK_SPLIT = 1 << 0,
83 MDS_CROSS_REF = 1 << 1,
84 MDS_VTX_BYPASS = 1 << 2,
85 MDS_PERM_BYPASS = 1 << 3,
87 MDS_QUOTA_IGNORE = 1 << 5,
88 MDS_KEEP_ORPHAN = 1 << 7,
89 MDS_RECOV_OPEN = 1 << 8,
90 MDS_DATA_MODIFIED = 1 << 9,
91 MDS_CREATE_VOLATILE = 1 << 10,
92 MDS_OWNEROVERRIDE = 1 << 11,
93 MDS_HSM_RELEASE = 1 << 12,
98 For example, MDS_DATA_MODIFIED signals to the HSM system that the MDT
99 should set the corresponding HSM extended attribute. We'll return to
100 this topic with more details about the individual flags at a later
103 The 'rr_mode' field gives the value of the mode attribute.
105 The 'rr_flags' and 'rr_flags_h' fields give the value (and the high
106 order bytes of the value, respectively, if there are high order bytes)
107 of the flags attribute.
109 The 'rr_umask' gives the value of the 'umask' to apply in, for
110 example, a REINT_CREATE.