lkml.org 
[lkml]   [2021]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH v3 28/68] fscache: Provide a function to note the release of a page
    From
    Date
    Provide a function to be called from a network filesystem's releasepage
    method to indicate that a page has been released that might have been a
    reflection of data upon the server - and now that data must be reloaded
    from the server or the cache.

    This is used to end an optimisation for empty files, in particular files
    that have just been created locally, whereby we know there cannot yet be
    any data that we would need to read from the server or the cache.

    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: linux-cachefs@redhat.com
    Link: https://lore.kernel.org/r/163819617128.215744.4725572296135656508.stgit@warthog.procyon.org.uk/ # v1
    Link: https://lore.kernel.org/r/163906920354.143852.7511819614661372008.stgit@warthog.procyon.org.uk/ # v2
    ---

    include/linux/fscache.h | 16 ++++++++++++++++
    1 file changed, 16 insertions(+)

    diff --git a/include/linux/fscache.h b/include/linux/fscache.h
    index 884f7650d5a7..c6c640a06841 100644
    --- a/include/linux/fscache.h
    +++ b/include/linux/fscache.h
    @@ -608,4 +608,20 @@ static inline void fscache_clear_inode_writeback(struct fscache_cookie *cookie,
    }
    }

    +/**
    + * fscache_note_page_release - Note that a netfs page got released
    + * @cookie: The cookie corresponding to the file
    + *
    + * Note that a page that has been copied to the cache has been released. This
    + * means that future reads will need to look in the cache to see if it's there.
    + */
    +static inline
    +void fscache_note_page_release(struct fscache_cookie *cookie)
    +{
    + if (cookie &&
    + test_bit(FSCACHE_COOKIE_HAVE_DATA, &cookie->flags) &&
    + test_bit(FSCACHE_COOKIE_NO_DATA_TO_READ, &cookie->flags))
    + clear_bit(FSCACHE_COOKIE_NO_DATA_TO_READ, &cookie->flags);
    +}
    +
    #endif /* _LINUX_FSCACHE_H */

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