NFSv4: Fix open_to_lock_owner sequenceid allocation...
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 2 Jan 2008 21:27:16 +0000 (16:27 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Thu, 3 Jan 2008 14:37:17 +0000 (09:37 -0500)
commite6e21970baff4845de74584e2efc8c964a55d574
tree4a0b5f709ca2892d6babadd47baad7c9f0f8ec7d
parentbb22629ee87eed5054f8b508dbe7c58abad0a324
NFSv4: Fix open_to_lock_owner sequenceid allocation...

NFSv4 file locking is currently completely broken since it doesn't respect
the OPEN sequencing when it is given an unconfirmed lock_owner and needs to
do an open_to_lock_owner. Worse: it breaks the sunrpc rules by doing a
GFP_KERNEL allocation inside an rpciod callback.

Fix is to preallocate the open seqid structure in nfs4_alloc_lockdata if we
see that the lock_owner is unconfirmed.
Then, in nfs4_lock_prepare() we wait for either the open_seqid, if
the lock_owner is still unconfirmed, or else fall back to waiting on the
standard lock_seqid.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4proc.c