NFSv4: Resend the READ/WRITE RPC call if a stateid change causes an error
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Sun, 17 Mar 2013 00:54:34 +0000 (20:54 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Mon, 25 Mar 2013 16:04:10 +0000 (12:04 -0400)
commit5521abfdcf4d67c3441d4414f29e1acd7cc43380
treed3f2554e5f066bc45fde92f338b46e0910675bd2
parent9b20614988199fb03580b335a28250922e902098
NFSv4: Resend the READ/WRITE RPC call if a stateid change causes an error

Adds logic to ensure that if the server returns a BAD_STATEID,
or other state related error, then we check if the stateid has
already changed. If it has, then rather than start state recovery,
we should just resend the failed RPC call with the new stateid.

Allow nfs4_select_rw_stateid to notify that the stateid is unstable by
having it return -EWOULDBLOCK if an RPC is underway that might change the
stateid.

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