lkml.org 
[lkml]   [2021]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.11 134/329] NFS: Only change the cookie verifier if the directory page cache is empty
    Date
    From: Trond Myklebust <trond.myklebust@hammerspace.com>

    [ Upstream commit f892c41c14e0fa3d78ce37de1d5c8161ed13bf08 ]

    The cached NFSv3/v4 readdir cookies are associated with a verifier,
    which is checked by the server on subsequent calls to readdir, and is
    only expected to change when the cookies (and hence also the page cache
    contents) are considered invalid.
    We therefore do have to store the verifier, but only when the page cache
    is empty.

    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 | 7 ++++++-
    1 file changed, 6 insertions(+), 1 deletion(-)

    diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
    index ca1dddc81436..d5f28a1f3671 100644
    --- a/fs/nfs/dir.c
    +++ b/fs/nfs/dir.c
    @@ -928,7 +928,12 @@ static int find_and_lock_cache_page(struct nfs_readdir_descriptor *desc)
    }
    return res;
    }
    - memcpy(nfsi->cookieverf, verf, sizeof(nfsi->cookieverf));
    + /*
    + * Set the cookie verifier if the page cache was empty
    + */
    + if (desc->page_index == 0)
    + memcpy(nfsi->cookieverf, verf,
    + sizeof(nfsi->cookieverf));
    }
    res = nfs_readdir_search_array(desc);
    if (res == 0) {
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-05-17 17:31    [W:4.217 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site