lkml.org 
[lkml]   [2021]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.14 676/849] NFS: Dont set NFS_INO_DATA_INVAL_DEFER and NFS_INO_INVALID_DATA
    Date
    From: Trond Myklebust <trond.myklebust@hammerspace.com>

    [ Upstream commit 488796ec1e39fb9194cc8175f770823d40fbf0ed ]

    NFS_INO_DATA_INVAL_DEFER and NFS_INO_INVALID_DATA should be considered
    mutually exclusive.

    Fixes: 1c341b777501 ("NFS: Add deferred cache invalidation for close-to-open consistency violations")
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Tested-by: Benjamin Coddington <bcodding@redhat.com>
    Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/nfs/inode.c | 9 +++++++--
    1 file changed, 7 insertions(+), 2 deletions(-)

    diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
    index 6ea1bde33cb62..f9d3ad3acf114 100644
    --- a/fs/nfs/inode.c
    +++ b/fs/nfs/inode.c
    @@ -210,10 +210,15 @@ void nfs_set_cache_invalid(struct inode *inode, unsigned long flags)
    flags &= ~NFS_INO_INVALID_XATTR;
    if (flags & NFS_INO_INVALID_DATA)
    nfs_fscache_invalidate(inode);
    - if (inode->i_mapping->nrpages == 0)
    - flags &= ~(NFS_INO_INVALID_DATA|NFS_INO_DATA_INVAL_DEFER);
    flags &= ~(NFS_INO_REVAL_PAGECACHE | NFS_INO_REVAL_FORCED);
    +
    nfsi->cache_validity |= flags;
    +
    + if (inode->i_mapping->nrpages == 0)
    + nfsi->cache_validity &= ~(NFS_INO_INVALID_DATA |
    + NFS_INO_DATA_INVAL_DEFER);
    + else if (nfsi->cache_validity & NFS_INO_INVALID_DATA)
    + nfsi->cache_validity &= ~NFS_INO_DATA_INVAL_DEFER;
    }
    EXPORT_SYMBOL_GPL(nfs_set_cache_invalid);

    --
    2.33.0


    \
     
     \ /
      Last update: 2021-11-16 02:23    [W:4.015 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site