nfs41: serialize first layoutget of a file
authorPeng Tao <tao.peng@primarydata.com>
Fri, 22 Aug 2014 09:37:41 +0000 (17:37 +0800)
committerTom Haynes <loghyr@primarydata.com>
Tue, 3 Feb 2015 19:06:39 +0000 (11:06 -0800)
commit9bf87482ddc6f8db884177a2a16b1a1dc12f8777
tree380c0cc9a14dc4b5492f35473e88aee787b224ff
parentabb9a0079c7f06360b83a5dd27ce74b8dc6d01b6
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>
fs/nfs/pnfs.c
fs/nfs/pnfs.h