On Tue, 2020-01-28 at 08:37 +0000, Robert Milkowski wrote: > From: Robert Milkowski <rmilkowski@xxxxxxxxx> > > Currently, if an nfs server returns NFS4ERR_EXPIRED to open(), > we return EIO to applications without even trying to recover. > > Fixes: 272289a3df72 ("NFSv4: nfs4_do_handle_exception() handle > revoke/expiry of a single stateid") > Signed-off-by: Robert Milkowski <rmilkowski@xxxxxxxxx> > --- > fs/nfs/nfs4proc.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c > index 76d3716..b7c4044 100644 > --- a/fs/nfs/nfs4proc.c > +++ b/fs/nfs/nfs4proc.c > @@ -3187,6 +3187,11 @@ static struct nfs4_state *nfs4_do_open(struct > inode *dir, > exception.retry = 1; > continue; > } > + if (status == -NFS4ERR_EXPIRED) { > + nfs4_schedule_lease_recovery(server- > >nfs_client); > + exception.retry = 1; > + continue; > + } > if (status == -EAGAIN) { > /* We must have found a delegation */ > exception.retry = 1; Looks good. Reviewed-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> -- Trond Myklebust Linux NFS client maintainer, Hammerspace trond.myklebust@xxxxxxxxxxxxxxx