On Tue, 2021-03-16 at 10:25 +0000, Nagendra Tomar wrote: > From: Nagendra S Tomar <natomar@xxxxxxxxxxxxx> > > If the loop in nfs_readdir_xdr_to_array() runs more than once, > subsequent > READDIR RPCs may wrongly carry a zero cookie verifier and non-zero > cookie. > Make sure subsequent calls to READDIR carry the cookie verifier > returned > by the first call. > > Signed-off-by: Nagendra S Tomar <natomar@xxxxxxxxxxxxx> > --- > diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c > index fc4f490f2d78..08a1e2e31d0b 100644 > --- a/fs/nfs/dir.c > +++ b/fs/nfs/dir.c > @@ -866,6 +866,8 @@ static int nfs_readdir_xdr_to_array(struct > nfs_readdir_descriptor *desc, > break; > } > > + verf_arg = verf_res; > + > status = nfs_readdir_page_filler(desc, entry, pages, > pglen, > arrays, narrays); > } while (!status && nfs_readdir_page_needs_filling(page)); That looks good to me. However when looking over that code, I think I spotted a similar issue when we're doing uncached readdir in order to try to recover a missing cookie. I therefore Cced you on the posting for that patch. -- Trond Myklebust Linux NFS client maintainer, Hammerspace trond.myklebust@xxxxxxxxxxxxxxx