nfsd: Handle EOPENSTALE correctly in the filecache
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Mon, 11 Sep 2023 18:30:27 +0000 (14:30 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 16 Oct 2023 16:44:00 +0000 (12:44 -0400)
commitd59b3515ab021e010fdc58a8f445ea62dd2f7f4c
treef25cda24d7e23f943242739eb26efb75b5f2e54d
parent5896a8705461052bfc2dcd7cf5909eaf3cecaa92
nfsd: Handle EOPENSTALE correctly in the filecache

The nfsd_open code handles EOPENSTALE correctly, by retrying the call to
fh_verify() and __nfsd_open(). However the filecache just drops the
error on the floor, and immediately returns nfserr_stale to the caller.

This patch ensures that we propagate the EOPENSTALE code back to
nfsd_file_do_acquire, and that we handle it correctly.

Fixes: 65294c1f2c5e ("nfsd: add a new struct file caching facility to nfsd")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Message-Id: <20230911183027.11372-1-trond.myklebust@hammerspace.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/filecache.c
fs/nfsd/vfs.c
fs/nfsd/vfs.h