nfs: Subsequent READDIR calls should carry non-zero cookieverifier
authorNagendra S Tomar <natomar@microsoft.com>
Tue, 16 Mar 2021 10:25:14 +0000 (10:25 +0000)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Mon, 5 Apr 2021 13:04:20 +0000 (09:04 -0400)
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@microsoft.com>
Fixes: b593c09f83a2 ("NFS: Improve handling of directory verifiers")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/dir.c

index fc4f490..08a1e2e 100644 (file)
@@ -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));