--- /dev/null
+Command 104: LDLM_GL_CALLBACK
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+[[ldlm-gl-callback-rpc]]
+
+An RPC that assists with getting a lock back from an entity that has
+it.
+
+.LDLM_GL_CALLBACK Generic Packet Structure
+image::ldlm-gl-callback-generic.png["LDLM_GL_CALLBACK Generic Packet Structure",height=100]
+
+//////////////////////////////////////////////////////////////////////
+The ldlm-gl-callback-generic.png diagram resemgles this text
+art:
+
+ LDLM_GL_CALLBACK:
+ --request---------------------
+ | ptlrpc_body | ldlm_request |
+ ------------------------------
+ --reply------------------
+ | ptlrpc_body | ost_lvb |
+ -------------------------
+//////////////////////////////////////////////////////////////////////
+
+The request RPC resembles the simplest LDLM_ENQUEUE RPC, but only
+identifies the relevant resource that the destination entity already
+had a lock on. It asks the recipient to flush its dirty write cache,
+and notify the requester of size and time attributes once that is
+done. The reply updates the attributes on the requester.
+
+'ptlrpc_body'::
+RPC descriptor.
+
+'ldlm_request'::
+Description of the lock being requested. Which resource is the target,
+what lock is current, and what lock desired.
+
+'ost_lvb'::
+Attribute data associated with a resource on an OST.
+