summaryrefslogtreecommitdiffstats
path: root/fs/nfs/pnfs.h
diff options
context:
space:
mode:
authorPeng Tao <tao.peng@primarydata.com>2014-08-22 17:37:41 +0800
committerTom Haynes <loghyr@primarydata.com>2015-02-03 11:06:39 -0800
commit9bf87482ddc6f8db884177a2a16b1a1dc12f8777 (patch)
tree380c0cc9a14dc4b5492f35473e88aee787b224ff /fs/nfs/pnfs.h
parentabb9a0079c7f06360b83a5dd27ce74b8dc6d01b6 (diff)
downloadop-kernel-dev-9bf87482ddc6f8db884177a2a16b1a1dc12f8777.zip
op-kernel-dev-9bf87482ddc6f8db884177a2a16b1a1dc12f8777.tar.gz
nfs41: serialize first layoutget of a file
Per RFC 5661 Errata 3208: | A client MAY always forget its layout state and associated | layout stateid at any time (See also section 12.5.5.1). | In such case, the client MUST use a non-layout stateid for the next | LAYOUTGET operation. This will signal the server that the client has | no more layouts on the file and its respective layout state can be | released before issuing a new layout in response to LAYOUTGET. In order to make such a signal unique to server, client needs to serialize all layoutgets using non-layout stateid. We implement this by serializing layoutgets when client has no layout segments at hand. Signed-off-by: Peng Tao <tao.peng@primarydata.com> Signed-off-by: Tom Haynes <Thomas.Haynes@primarydata.com>
Diffstat (limited to 'fs/nfs/pnfs.h')
-rw-r--r--fs/nfs/pnfs.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h
index c398821..4cf0d54 100644
--- a/fs/nfs/pnfs.h
+++ b/fs/nfs/pnfs.h
@@ -95,6 +95,7 @@ enum {
NFS_LAYOUT_ROC, /* some lseg had roc bit set */
NFS_LAYOUT_RETURN, /* Return this layout ASAP */
NFS_LAYOUT_INVALID_STID, /* layout stateid id is invalid */
+ NFS_LAYOUT_FIRST_LAYOUTGET, /* Serialize first layoutget */
};
enum layoutdriver_policy_flags {
OpenPOWER on IntegriCloud