~~~~~~
The 'statfs' VFS method queries file-system-wide space and inode
-usage. For details about the MDS_STATFS RPC, including possible faults
-and error return codes, see <<mds-statfs-rpc>>, and for OST_STATFS see
-<<ost-statfs-rpc>>.
+usage. For details about the MDS_STATFS RPC see <<mds-statfs-rpc>>,
+and for OST_STATFS see <<ost-statfs-rpc>>.
A client gets 'statfs' information for the file system as a whole by
-first querying the individual storage targets for the 'statfs'
-information on each back-end file system. The RPCs that flow are as
-shown in <<statfs-rpcs>>. The values returned in the VFS call are
-built from the results of the *_STATFS RPCs as follows:
+first querying the individual storage targets (OSDs) for their
+'statfs' information. The RPCs that flow are as shown in
+<<statfs-rpcs>>. The values returned in the VFS call are built from
+the results of the *_STATFS RPCs as follows:
.Statfs values
[options="header"]
The MDS_STATFS request is a so-called 'empty' RPC in that it consists
only of the 'ptlrpc_body' (Lustre RPC descriptor) with the opcode set to
-MDS_STATFS (41). Refer to the discussion of <<mds-statfs-rpc>> for
-more general information about the MDS_STATFS RPC's request and reply
-messages.
+MDS_STATFS (41).
.MDS_STATFS Request Packet Structure
+image::mds-statfs-request.png["MDS_STATFS Request Packet Structure",height=50]
-:frame: none
-:grid: none
-[width="50%", cols="2a"]
-|====
-| request
-[cols="1"]
-!===================
-! <<struct-ptlrpc-body,ptlrpc_body>> !
-!===================
-|====
+//////////////////////////////////////////////////////////////////////
+The mds-statfs-request.png diagram resembles this text art:
+
+ MDS_STATFS:
+ --request------
+ | ptlrpc_body |
+ ---------------
+//////////////////////////////////////////////////////////////////////
+
+See <<mds-statfs-rpc>>.
*2 - The MDS_STATFS reply returns 'statfs' info*
<<struct-obd-statfs>>.
.MDS_STATFS Reply Packet Structure
+image::mds-statfs-reply.png["MDS_STATFS Reply Packet Structure",height=50]
-:frame: none
-:grid: none
-[width="50%", cols="2a"]
-|====
-| reply
-[cols="2"]
-!===================
-! <<struct-ptlrpc-body,ptlrpc_body>> ! <<struct-obd-statfs,obd_statfs>> !
-!===================
-|====
+//////////////////////////////////////////////////////////////////////
+The mds-statfs-reply.png diagram resembles this text art:
+
+ MDS_STATFS:
+ --reply---------------------
+ | ptlrpc_body | obd_statfs |
+ ----------------------------
+//////////////////////////////////////////////////////////////////////
*3 - The client issues an OST_STATFS request to each OST.*
MDT.
.OST_STATFS Request Packet Structure
+image::ost-statfs-request.png["OST_STATFS Request Packet Structure",height=50]
-:frame: none
-:grid: none
-[width="50%", cols="2a"]
-|====
-| request
-[cols="1"]
-!===================
-! <<struct-ptlrpc-body,ptlrpc_body>> !
-!===================
-|====
+//////////////////////////////////////////////////////////////////////
+The ost-statfs-request.png diagram resembles this text art:
+
+ OST_STATFS:
+ --request------
+ | ptlrpc_body |
+ ---------------
+//////////////////////////////////////////////////////////////////////
+See <<mds-statfs-rpc>>.
*4 - The OST_STATFS reply returns 'statfs' info*
<<struct-obd-statfs>>.
.OST_STATFS Reply Packet Structure
+image::ost-statfs-reply.png["OST_STATFS Reply Packet Structure",height=50]
-:frame: none
-:grid: none
-[width="50%", cols="2a"]
-|====
-| reply
-[cols="2"]
-!===================
-! <<struct-ptlrpc-body,ptlrpc_body>> ! <<struct-obd-statfs,obd_statfs>> !
-!===================
-|====
+//////////////////////////////////////////////////////////////////////
+The ost-statfs-reply.png diagram resembles this text art:
+
+ OST_STATFS:
+ --reply---------------------
+ | ptlrpc_body | obd_statfs |
+ ----------------------------
+//////////////////////////////////////////////////////////////////////