X-Git-Url: https://git.whamcloud.com/?p=doc%2Fprotocol.git;a=blobdiff_plain;f=mds_reint.txt;h=83153fc5d49d72700c7d6536d4c372294aa1d3ed;hp=ace1045bdf5d2e4d08bebbafc03ab2a05abb2937;hb=fcef7c1bf5a197eed7a85704be12b80c5067c2d1;hpb=f7539c5d000a6cce00dd20959e071892011561dc diff --git a/mds_reint.txt b/mds_reint.txt index ace1045..83153fc 100644 --- a/mds_reint.txt +++ b/mds_reint.txt @@ -1,44 +1,135 @@ -Command 36: MDS_REINT -~~~~~~~~~~~~~~~~~~~~~ -[[mds-reint-rpm]] - -An RPC that implements an operation that will change the information -on an MDT. - -REINT_SETATTR -^^^^^^^^^^^^^ +RPC 36: MDS_REINT +~~~~~~~~~~~~~~~~~ +[[mds-reint-rpc]] + +An RPC that implements an operation that will change the state of +an object on an MDT. There are a variety of operations all gathered +under the MDS_REINT 'opcode'. + +---- +typedef enum { + REINT_SETATTR = 1, + REINT_CREATE = 2, + REINT_LINK = 3, + REINT_UNLINK = 4, + REINT_RENAME = 5, + REINT_OPEN = 6, + REINT_SETXATTR = 7, + REINT_RMENTRY = 8, + REINT_MIGRATE = 9, + REINT_MAX +} mds_reint_t, mdt_reint_t; +---- + +include::struct_mdt_rec_reint.txt[] + +REINT_SETATTR RPC +^^^^^^^^^^^^^^^^^ [[mds-reint-setattr-rpc]] An RPC that implements the 'setattr' sub-command of the MDS_REINT. -.MDS_REINT:REINT_SETATTR Generic Packet Structure -image::mds-reint-setattr-generic.png["MDS_REINT:REINT_SETATTR Generic Packet Structure",height=100] +.MDS_REINT:REINT_SETATTR Request Packet Structure +image::mds-reint-setattr-request.png["MDS_REINT:REINT_SETATTR Request Packet Structure",height=50] ////////////////////////////////////////////////////////////////////// -The mds-reint-setattr-generic.png diagram resembles this text art: +The mds-reint-setattr-request.png diagram resembles this text art: MDS_REINT: --REINT_SETATTR-request------------------------------------- | ptlrpc_body | mdt_rec_setattr | lustre_capa | mdt_ioepoc | - eadata | llog_cookie | ldlm_request | ------------------------------------------------------------ + | eadata | llog_cookie | ldlm_request | + --------------------------------------- +////////////////////////////////////////////////////////////////////// - --REINT_SETATTR-reply---------------------------------- - | ptlrpc_body | mdt_body | mdt_md | acl | lustre_capa | - lustre_capa | - ------------------------------------------------------- +'ptlrpc_body':: +RPC descriptor. See <>. + +include::struct_mdt_rec_setattr.txt[] + +'lustre_capa':: +A "capabilities" structure. See <>. + +'mdt_ioepoch':: +Identifying "epoch" information. This buffer is optional and will +appear as zero length in some packets. + +'eadata':: +Information about extended attributes. This buffer is optional and will +appear as zero length in some packets. + +'llog_cookie':: +A log handle. This buffer is optional and will appear as zero length +in some packets. + +'ldlm_request':: +A structure specifying a lock that can be the subject of early lock +cancellation. See <>. + +.MDS_REINT:REINT_SETATTR Reply Packet Structure +image::mds-reint-setattr-reply.png["MDS_REINT:REINT_SETATTR Reply Packet Structure",height=50] + +////////////////////////////////////////////////////////////////////// +The mds-reint-setattr-reply.png diagram resembles this text art: + + MDS_REINT: + --REINT_SETATTR-reply-------------------------------- + | ptlrpc_body | mdt_body | mdt_md | acl | fid1_capa | + ----------------------------------------------------- + | fid2_capa | + ------------- ////////////////////////////////////////////////////////////////////// 'ptlrpc_body':: -RPC descriptor. +RPC descriptor. See <>. -'mdt_rec_setattr':: -Information pertinent to setting attributes on the MDT. +'mdt_body':: +Metadata about the resource. + +'mdt_md':: +Layout data for the resource. This buffer is optional and will appear +as zero length in some packets. + +'acl':: +Access control list data. This buffer is optional and will appear as +zero length in some packets. + +'fid1_capa':: +The capabilities structure for the first FID in the 'mdt_body'. See +<>. + +'fid2_capa':: +The capabilities structure for the second FID in the 'mdt_body'. See +<>. + +REINT_SETXATTR RPC +^^^^^^^^^^^^^^^^^^ +[[mds-reint-setxattr-rpc]] + +An RPC that implements the 'setxattr' sub-command of the MDS_REINT. + +.MDS_REINT:REINT_SETXATTR Request Packet Structure +image::mds-reint-setxattr-request.png["MDS_REINT:REINT_SETXATTR Request Packet Structure",height=50] + +////////////////////////////////////////////////////////////////////// +The mds-reint-setxattr-request.png diagram resembles this text art: + + MDS_REINT: + --REINT_SETXATTR-request------------------------------------- + | ptlrpc_body | mdt_rec_setxattr | lustre_capa | mdt_ioepoc | + ------------------------------------------------------------- + | eadata | llog_cookie | ldlm_request | + --------------------------------------- +////////////////////////////////////////////////////////////////////// + +'ptlrpc_body':: +RPC descriptor. See <>. + +include::struct_mdt_rec_setxattr.txt[] 'lustre_capa':: -So called "capabilities" structure. This is deprecated in recent -versions of Lustre, and commonly appears in the packet header as a zero -length buffer. +A "capabilities" structure. See <>. 'mdt_ioepoch':: Identifying "epoch" information. This buffer is optional and will @@ -56,6 +147,23 @@ in some packets. A structure specifying a lock that can be the subject of early lock cancellation. See <>. +.MDS_REINT:REINT_SETXATTR Reply Packet Structure +image::mds-reint-setxattr-reply.png["MDS_REINT:REINT_SETXATTR Reply Packet Structure",height=50] + +////////////////////////////////////////////////////////////////////// +The mds-reint-setxattr-reply.png diagram resembles this text art: + + MDS_REINT: + --REINT_SETXATTR-reply--------------------------------- + | ptlrpc_body | mdt_body | mdt_md | acl | fid1_capa | + ------------------------------------------------------- + | fid2_capa | + ------------- +////////////////////////////////////////////////////////////////////// + +'ptlrpc_body':: +RPC descriptor. See <>. + 'mdt_body':: Metadata about the resource. @@ -67,3 +175,11 @@ as zero length in some packets. Access control list data. This buffer is optional and will appear as zero length in some packets. +'fid1_capa':: +The capabilities structure for the first FID in the 'mdt_body'. See +<>. + +'fid2_capa':: +The capabilities structure for the second FID in the 'mdt_body'. See +<>. +