]> git.baikalelectronics.ru Git - kernel.git/commit
NFSv4.1: nfs41_clear_delegation_stateid shouldn't trust NFS_DELEGATED_STATE
authorTrond Myklebust <trond.myklebust@primarydata.com>
Wed, 12 Nov 2014 19:44:49 +0000 (14:44 -0500)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Wed, 12 Nov 2014 22:01:33 +0000 (17:01 -0500)
commit5ef705505e4e9856b30d4420ef3cdab3f0cb4113
tree05de2078e0257bead5b569bf03f6dcaad234760d
parent7cb63974f254469bafe19310710f80c166dcd961
NFSv4.1: nfs41_clear_delegation_stateid shouldn't trust NFS_DELEGATED_STATE

This patch removes the assumption made previously, that we only need to
check the delegation stateid when it matches the stateid on a cached
open.

If we believe that we hold a delegation for this file, then we must assume
that its stateid may have been revoked or expired too. If we don't test it
then our state recovery process may end up caching open/lock state in a
situation where it should not.
We therefore rename the function nfs41_clear_delegation_stateid as
nfs41_check_delegation_stateid, and change it to always run through the
delegation stateid test and recovery process as outlined in RFC5661.

http://lkml.kernel.org/r/CAN-5tyHwG=Cn2Q9KsHWadewjpTTy_K26ee+UnSvHvG4192p-Xw@mail.gmail.com
Cc: stable@vger.kernel.org
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/nfs4proc.c