and <<recovery>> for how the client is given confirmation that a
request has been completed.
+include::ost_setattr.txt[]
+
Command 8: OST CONNECT - Client connection to an OST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The information exchanged in a DISCONNECT message is that normally
conveyed in the mesage preamble.
+include::ost_punch.txt[]
+
Command 33: MDS GETATTR - Get MDS Attributes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|====
+include::mds_reint.txt[]
Command 38: MDS CONNECT - Client connection to an MDS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The MDS_GETSTATUS command targets a specific MDT. If there are several,
the client will need to send a separate message for each.
-.MDS_GETSTATUS (41)
+.MDS_GETSTATUS (40)
[options="header"]
|====
| request | reply
In the reply there is, in addition to the 'ptlrpc_body', data relevant
to a 'statfs' system call.
-Command 101: LDLM ENQUEUE - Enqueue a lock request
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-.LDLM_ENQUEUE (101)
-[options="header"]
-|====
-| request | reply
-| ldlm_enqueue_client | ldlm_enqueue_lvb_server
-|====
-
-In order to access data on disk at a target the client needs to
-establish a lock (either concurrent for reads or exclusive for
-writes). The client sends the 'ldlm_enqueue_client' message to the
-server holding the target, and the server will reply with an
-'ldlm_enqueue_server' message. (N.B. It actuallity it is an
-'ldlm_enqueue_lvb_server' message with the length of the 'struct
-ost_lvb' portion set to zero, which ammounts to the same thing).
-
-The target UUID is just "MGS", and the client UUID is set to the
-32byte string it gets from ... where?
-
-The 'struct lustre_handle' (the fourth buffer in the message) has its
-cookie set to .. what? It is set, but where does it come from?
-
-The 'ocd_connect_flags' field is set to (fixme: what?) reflecting the
-capabilities appropriate to the client. The 'ocd_brw_size' is set to the
-largest value for the size of an RPC that the client can handle. The
-'ocd_ibits_known' and 'ocd_checksum_types' values are set to what the client
-considers appropriate. Other fields in the preamble and
-'obd_connect_data' structures are zero.
+include::mds_getxattr.txt[]
-Once the server receives the 'obd_connect_client' message on behalf of
-the given target it replies with an 'obd_connect_server' message. In
-that message the server sends the 'pb__handle' to uniquely
-identify the connection for subsequent communication. The client notes
-that handle in its import for the given target.
+include::ldlm_enqueue.txt[]
-fixme: Are there circumstances that could lead to the 'status'
-value in the reply being non-zero? What would lead to that and what
-error values would result?
+include::ldlm_cancel.txt[]
-The target maintains the last committed transaction for a client in
-its export for that client. If this is the first connection, then that
-last transactiion value would just be zero. If there were previous
-transactions for the client, then the transaction number for the last
-such committed transaction is put in the 'pb_last_committed' field.
+include::ldlm_bl_callback.txt[]
-In a connection request the operation is not file system modifying, so
-the 'pb_transno' value will be zero in the reply as well.
+include::ldlm_cp_callback.txt[]
Command 250: MGS CONNECT - Client connection to an MGS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~