Whamcloud - gitweb
LUDOC-293 protocol: Merge all recent patches
[doc/protocol.git] / mds_statfs.txt
diff --git a/mds_statfs.txt b/mds_statfs.txt
new file mode 100644 (file)
index 0000000..d9f68d5
--- /dev/null
@@ -0,0 +1,48 @@
+Command 41: MDS_STATFS
+~~~~~~~~~~~~~~~~~~~~~~
+[[mds-statfs-rpc]]
+
+MDS_STATFS is an RPC that queries data about the underlying file
+system for a given MDT. It is generated in response to an explicit
+call for 'statfs' information from the VFS via the 'statfs(2)'
+function.
+
+The MDS_STATFS request message is a so-called "empty" message in that
+it only has a buffer for the 'ptlrpc_body' with the 'pb_opc' value
+MDS_STATFS (41).
+
+The reply message conveys 'statfs' data when it succeeds, and an error
+code if it doesn't.
+
+.MDS_STATFS Generic Packet Structure
+
+:frame: none
+:grid: none
+[width="50%", cols="2a"]
+|====
+| request
+[cols="1"]
+!===================
+! <<struct-ptlrpc-body,ptlrpc_body>> !
+!===================
+| reply
+[cols="2"]
+!===================
+! <<struct-ptlrpc-body,ptlrpc_body>> ! <<struct-obd_statfs,obd_statfs>> !
+!===================
+|====
+
+'ptlrpc_body':: RPC descriptor. Only the 'pb_opc' value (MDS_STATFS =
+41) is directly relevant to the MDS_STATFS request message. The rest
+of the 'ptlrpc_body' fields handle generic information about the
+RPC, as discussed in <<struct-ptlrpc-body>>, including  generic error
+conditions. In a normal reply ('pb_type' = PTL_RPC_MSG_REPLY) the
+'pb_status' field is 0.  The one error that can be returned in
+'pb_status' that is speficially from OST_STATFS' handling is -ENOMEM,
+which occurs if there is not enough memory to allocate a temporary
+buffer for the 'statfs' data.
+
+'obd_statfs'::
+File system wide statistics corresponding to 'struct statfs' as well
+as Lustre-specific information. See <<struct-obd-statfs>> for a
+detailed discussion.