5 An MDS_REINT RPC ('pb_opc' = 36) is one that implements an operation
6 that will change the state of an object on an MDT. There are a variety
7 of operations all gathered under the MDS_REINT 'opcode'. The possible
8 values for the 'mdt_rec_reint' struct's 'rr_opcode' field give types
9 of operations that are encoded as MDS_REINT RPCs:
11 .MDS Reint Opcodes ('rr_opcode')
29 include::struct_mdt_rec_reint.txt[]
33 [[mds-reint-setattr-rpc]]
35 The REINT_SETATTR is an RPC that implements the 'setattr' sub-command
38 .MDS_REINT:REINT_SETATTR Request Packet Structure
39 image::mds-reint-setattr-request.png["MDS_REINT:REINT_SETATTR Request Packet Structure",height=75]
41 //////////////////////////////////////////////////////////////////////
42 The mds-reint-setattr-request.png diagram resembles this text art:
45 --REINT_SETATTR-request-------------------------------------
46 | ptlrpc_body | mdt_rec_setattr | lustre_capa | mdt_ioepoc |
47 ------------------------------------------------------------
48 | eadata | llog_cookie | ldlm_request |
49 ---------------------------------------
50 //////////////////////////////////////////////////////////////////////
53 RPC descriptor. See <<struct-ptlrpc-body>>.
55 include::struct_mdt_rec_setattr.txt[]
57 After the 'mdt_rec_setattr' there are several more buffers defined for
58 the RPC, but those before the 'ldlm_request' are often unused and
59 appear as zero-length buffers in the header.
62 A "capabilities" structure. See <<struct-lustre-capa>>.
65 Identifying "epoch" information. This buffer is optional and will
66 appear as zero length in some packets.
69 Information about extended attributes. This buffer is optional and will
70 appear as zero length in some packets.
73 A log handle. This buffer is optional and will appear as zero length
77 A structure specifying a lock that can be the subject of early lock
78 cancellation. See <<early-lock-cancellation>>.
80 .MDS_REINT:REINT_SETATTR Reply Packet Structure
81 image::mds-reint-setattr-reply.png["MDS_REINT:REINT_SETATTR Reply Packet Structure",height=50]
83 //////////////////////////////////////////////////////////////////////
84 The mds-reint-setattr-reply.png diagram resembles this text art:
87 --REINT_SETATTR-reply--------------------------------
88 | ptlrpc_body | mdt_body | mdt_md | acl | fid1_capa |
89 -----------------------------------------------------
92 //////////////////////////////////////////////////////////////////////
95 RPC descriptor. See <<struct-ptlrpc-body>>.
98 Metadata about the resource.
101 Layout data for the resource. This buffer is optional and will appear
102 as zero length in some packets. This needs to be further explained.
105 Access control list data. This buffer is optional and will appear as
106 zero length in some packets.
109 The capabilities structure for the first FID in the 'mdt_body'. See
110 <<struct-lustre-capa>>.
113 The capabilities structure for the second FID in the 'mdt_body'. See
114 <<struct-lustre-capa>>.
118 [[mds-reint-setxattr-rpc]]
120 An RPC that implements the 'setxattr' sub-command of the MDS_REINT.
122 .MDS_REINT:REINT_SETXATTR Request Packet Structure
123 image::mds-reint-setxattr-request.png["MDS_REINT:REINT_SETXATTR Request Packet Structure",height=75]
125 //////////////////////////////////////////////////////////////////////
126 The mds-reint-setxattr-request.png diagram resembles this text art:
129 --REINT_SETXATTR-request-------------------------------------
130 | ptlrpc_body | mdt_rec_setxattr | lustre_capa | mdt_ioepoc |
131 -------------------------------------------------------------
132 | eadata | llog_cookie | ldlm_request |
133 ---------------------------------------
134 //////////////////////////////////////////////////////////////////////
137 RPC descriptor. See <<struct-ptlrpc-body>>.
139 include::struct_mdt_rec_setxattr.txt[]
141 Returning to the remaining buffers in the REINT_SETXATTR RPC we again
142 have several optional buffers followed by the 'ldlm_request'.
145 A "capabilities" structure. See <<struct-lustre-capa>>. This buffer is
146 optional and will appear as zero length in some packets.
149 Identifying "epoch" information. This buffer is optional and will
150 appear as zero length in some packets.
153 Information about extended attributes. This buffer is optional and will
154 appear as zero length in some packets.
157 A log handle. This buffer is optional and will appear as zero length
161 A structure specifying a lock that can be the subject of early lock
162 cancellation. See <<early-lock-cancellation>>.
164 .MDS_REINT:REINT_SETXATTR Reply Packet Structure
165 image::mds-reint-setxattr-reply.png["MDS_REINT:REINT_SETXATTR Reply Packet Structure",height=50]
167 //////////////////////////////////////////////////////////////////////
168 The mds-reint-setxattr-reply.png diagram resembles this text art:
171 --REINT_SETXATTR-reply---------------------------------
172 | ptlrpc_body | mdt_body | mdt_md | acl | fid1_capa |
173 -------------------------------------------------------
176 //////////////////////////////////////////////////////////////////////
179 RPC descriptor. See <<struct-ptlrpc-body>>.
182 Metadata about the resource.
185 Layout data for the resource. This buffer is optional and will appear
186 as zero length in some packets.
189 Access control list data. This buffer is optional and will appear as
190 zero length in some packets.
193 The capabilities structure for the first FID in the 'mdt_body'. See
194 <<struct-lustre-capa>>.
197 The capabilities structure for the second FID in the 'mdt_body'. See
198 <<struct-lustre-capa>>.