Commit 6c34f05b authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NFS: If the cookie verifier changes, we must invalidate the page cache



Ensure that if the cookie verifier changes when we use the zero-valued
cookie, then we invalidate any cached pages.

Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent 580f2367
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -990,9 +990,14 @@ static int find_and_lock_cache_page(struct nfs_readdir_descriptor *desc)
		/*
		 * Set the cookie verifier if the page cache was empty
		 */
		if (desc->page_index == 0)
		if (desc->last_cookie == 0 &&
		    memcmp(nfsi->cookieverf, verf, sizeof(nfsi->cookieverf))) {
			memcpy(nfsi->cookieverf, verf,
			       sizeof(nfsi->cookieverf));
			invalidate_inode_pages2_range(desc->file->f_mapping,
						      desc->page_index_max + 1,
						      -1);
		}
	}
	res = nfs_readdir_search_array(desc);
	if (res == 0)