]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 May 2021 08:29:38 +0000 (10:29 +0200)
[ Upstream commit ee3707ae2c1f1327ad5188836b7ab62ed2c93b28 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/nfs/dir.c

index 4db3018776f68fcbf9a5f26adb4bf818a4297105..c3618b6abfc0167130b0323fab59e4ddafad837b 100644 (file)
@@ -865,6 +865,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));