On Fri, 2017-11-03 at 12:46 -0400, Anna Schumaker wrote: > Hi Trond, > > On 11/03/2017 07:35 AM, Trond Myklebust wrote: > > If our layoutreturn on close operation returns an > > NFS4ERR_OLD_STATEID, > > then try to update the stateid and retry. We know that there should > > be no further LAYOUTGET requests being launched. > > > > Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> > > --- > > fs/nfs/nfs4proc.c | 18 ++++++++++++++++-- > > fs/nfs/pnfs.c | 18 ++++++++++++++++++ > > fs/nfs/pnfs.h | 1 + > > 3 files changed, 35 insertions(+), 2 deletions(-) > > > > diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c > > index fe4a855dc965..1bb0e405aa57 100644 > > --- a/fs/nfs/nfs4proc.c > > +++ b/fs/nfs/nfs4proc.c > > @@ -3165,11 +3165,18 @@ static void nfs4_close_done(struct rpc_task > > *task, void *data) > > calldata->arg.lr_args = NULL; > > calldata->res.lr_res = NULL; > > break; > > + case -NFS4ERR_OLD_STATEID: > > + if (nfs4_refresh_layout_stateid(&calldata- > > >arg.lr_args->stateid, > > + calldata->inode)) > > { > > This doesn't compile with CONFIG_NFS_V4_1=n. I get: > > CC [M] fs/nfs/nfs4proc.o > fs/nfs/nfs4proc.c: In function 'nfs4_close_done': > fs/nfs/nfs4proc.c:3169:8: error: implicit declaration of function > 'nfs4_refresh_layout_stateid'; did you mean > 'nfs4_refresh_open_stateid'? [-Werror=implicit-function-declaration] > if (nfs4_refresh_layout_stateid(&calldata->arg.lr_args->stateid, > ^~~~~~~~~~~~~~~~~~~~~~~~~~~ > nfs4_refresh_open_stateid Doh! Fixed in v6... -- Trond Myklebust Linux NFS client maintainer, PrimaryData trond.myklebust@xxxxxxxxxxxxxxx ��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥