pnfs: serialize LAYOUTGET(openstateid)
authorFred Isaman <iisaman@netapp.com>
Thu, 6 Jan 2011 11:36:25 +0000 (11:36 +0000)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Thu, 6 Jan 2011 19:46:31 +0000 (14:46 -0500)
commitcf7d63f1f9895713551df2e6d18b006f8af26e91
treefc3dbfc12332878a832c11b5ae47ff259bb1bc32
parentc31663d4a1fac5ce1954d656cbcf80eb883b814a
pnfs: serialize LAYOUTGET(openstateid)

We shouldn't send a LAYOUTGET(openstateid) unless all outstanding RPCs
using the previous stateid are completed.  This requires choosing the
stateid to encode earlier, so we can abort if one is not available (we
want to use the open stateid, but a LAYOUTGET is already out using
it), and adding a count of the number of outstanding rpc calls using
layout state (which for now consist solely of LAYOUTGETs).

Signed-off-by: Fred Isaman <iisaman@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4proc.c
fs/nfs/nfs4xdr.c
fs/nfs/pnfs.c
fs/nfs/pnfs.h
include/linux/nfs_xdr.h