From: David Howells <dhowells@redhat.com> To: linux-cachefs@redhat.com Cc: dhowells@redhat.com, Trond Myklebust <trondmy@hammerspace.com>, Anna Schumaker <anna.schumaker@netapp.com>, Steve French <sfrench@samba.org>, Dominique Martinet <asmadeus@codewreck.org>, Jeff Layton <jlayton@kernel.org>, Matthew Wilcox <willy@infradead.org>, Alexander Viro <viro@zeniv.linux.org.uk>, Omar Sandoval <osandov@osandov.com>, JeffleXu <jefflexu@linux.alibaba.com>, Linus Torvalds <torvalds@linux-foundation.org>, linux-afs@lists.infradead.org, linux-nfs@vger.kernel.org, linux-cifs@vger.kernel.org, ceph-devel@vger.kernel.org, v9fs-developer@lists.sourceforge.net, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 23/67] fscache: Provide a function to let the netfs update its coherency data Date: Thu, 09 Dec 2021 16:58:55 +0000 [thread overview] Message-ID: <163906913530.143852.18150303220217653820.stgit@warthog.procyon.org.uk> (raw) In-Reply-To: <163906878733.143852.5604115678965006622.stgit@warthog.procyon.org.uk> Provide a function to let the netfs update its coherency data: void fscache_update_cookie(struct fscache_cookie *cookie, const void *aux_data, const loff_t *object_size); This will update the auxiliary data and/or the size of the object attached to a cookie if either pointer is not-NULL and flag that the disk needs to be updated. Note that fscache_unuse_cookie() also allows this to be done. Signed-off-by: David Howells <dhowells@redhat.com> cc: linux-cachefs@redhat.com Link: https://lore.kernel.org/r/163819610438.215744.4223265964131424954.stgit@warthog.procyon.org.uk/ # v1 --- include/linux/fscache.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/include/linux/fscache.h b/include/linux/fscache.h index 329ed9dcd22f..ceb1966acc52 100644 --- a/include/linux/fscache.h +++ b/include/linux/fscache.h @@ -334,6 +334,28 @@ void __fscache_update_cookie(struct fscache_cookie *cookie, const void *aux_data set_bit(FSCACHE_COOKIE_NEEDS_UPDATE, &cookie->flags); } +/** + * fscache_update_cookie - Request that a cache object be updated + * @cookie: The cookie representing the cache object + * @aux_data: The updated auxiliary data for the cookie (may be NULL) + * @object_size: The current size of the object (may be NULL) + * + * Request an update of the index data for the cache object associated with the + * cookie. The auxiliary data on the cookie will be updated first if @aux_data + * is set and the object size will be updated and the object possibly trimmed + * if @object_size is set. + * + * See Documentation/filesystems/caching/netfs-api.rst for a complete + * description. + */ +static inline +void fscache_update_cookie(struct fscache_cookie *cookie, const void *aux_data, + const loff_t *object_size) +{ + if (fscache_cookie_enabled(cookie)) + __fscache_update_cookie(cookie, aux_data, object_size); +} + /** * fscache_invalidate - Notify cache that an object needs invalidation * @cookie: The cookie representing the cache object
next prev parent reply other threads:[~2021-12-09 16:59 UTC|newest] Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-12-09 16:53 [PATCH v2 00/67] fscache, cachefiles: Rewrite David Howells 2021-12-09 16:53 ` [PATCH v2 01/67] fscache, cachefiles: Disable configuration David Howells 2021-12-09 16:53 ` [PATCH v2 02/67] cachefiles: Delete the cachefiles driver pending rewrite David Howells 2021-12-09 16:54 ` [PATCH v2 03/67] fscache: Remove the contents of the fscache driver, " David Howells 2021-12-09 16:54 ` [PATCH v2 04/67] netfs: Display the netfs inode number in the netfs_read tracepoint David Howells 2021-12-09 16:54 ` [PATCH v2 05/67] netfs: Pass a flag to ->prepare_write() to say if there's no alloc'd space David Howells 2021-12-09 16:54 ` [PATCH v2 06/67] fscache: Introduce new driver David Howells 2021-12-09 16:54 ` [PATCH v2 07/67] fscache: Implement a hash function David Howells 2021-12-09 17:12 ` Linus Torvalds 2021-12-09 21:57 ` David Howells 2021-12-09 22:07 ` Linus Torvalds 2021-12-10 14:35 ` David Howells 2021-12-10 14:41 ` David Howells 2021-12-10 17:33 ` Linus Torvalds 2021-12-09 16:54 ` [PATCH v2 08/67] fscache: Implement cache registration David Howells 2021-12-14 18:36 ` Jeff Layton 2021-12-09 16:55 ` [PATCH v2 09/67] fscache: Implement volume registration David Howells 2021-12-09 17:32 ` Linus Torvalds 2021-12-14 18:52 ` Jeff Layton 2021-12-14 19:57 ` David Howells 2021-12-09 16:55 ` [PATCH v2 10/67] fscache: Implement cookie registration David Howells 2021-12-09 17:21 ` Linus Torvalds 2021-12-09 16:55 ` [PATCH v2 11/67] fscache: Implement cache-level access helpers David Howells 2021-12-09 16:55 ` [PATCH v2 12/67] fscache: Implement volume-level " David Howells 2021-12-09 16:55 ` [PATCH v2 13/67] fscache: Implement cookie-level " David Howells 2021-12-09 16:56 ` [PATCH v2 14/67] fscache: Implement functions add/remove a cache David Howells 2021-12-09 16:56 ` [PATCH v2 15/67] fscache: Provide and use cache methods to lookup/create/free a volume David Howells 2021-12-09 16:56 ` [PATCH v2 16/67] fscache: Add a function for a cache backend to note an I/O error David Howells 2021-12-09 16:57 ` [PATCH v2 17/67] fscache: Implement simple cookie state machine David Howells 2021-12-09 16:57 ` [PATCH v2 18/67] fscache: Implement cookie user counting and resource pinning David Howells 2021-12-09 16:58 ` [PATCH v2 19/67] fscache: Implement cookie invalidation David Howells 2021-12-09 16:58 ` [PATCH v2 20/67] fscache: Provide a means to begin an operation David Howells 2021-12-09 16:58 ` [PATCH v2 21/67] fscache: Count data storage objects in a cache David Howells 2021-12-09 16:58 ` [PATCH v2 22/67] fscache: Provide read/write stat counters for the cache David Howells 2021-12-09 16:58 ` David Howells [this message] 2021-12-09 16:59 ` [PATCH v2 24/67] netfs: Pass more information on how to deal with a hole in " David Howells 2021-12-09 16:59 ` [PATCH v2 25/67] fscache: Implement raw I/O interface David Howells 2021-12-09 16:59 ` [PATCH v2 26/67] fscache: Implement higher-level write " David Howells 2021-12-09 16:59 ` [PATCH v2 27/67] vfs, fscache: Implement pinning of cache usage for writeback David Howells 2021-12-09 17:00 ` [PATCH v2 28/67] fscache: Provide a function to note the release of a page David Howells 2021-12-09 17:00 ` [PATCH v2 29/67] fscache: Provide a function to resize a cookie David Howells 2021-12-09 17:00 ` [PATCH v2 30/67] cachefiles: Introduce rewritten driver David Howells 2021-12-09 17:00 ` [PATCH v2 31/67] cachefiles: Define structs David Howells 2021-12-09 17:00 ` [PATCH v2 32/67] cachefiles: Add some error injection support David Howells 2021-12-09 17:01 ` [PATCH v2 33/67] cachefiles: Add a couple of tracepoints for logging errors David Howells 2021-12-09 17:01 ` [PATCH v2 34/67] cachefiles: Add cache error reporting macro David Howells 2021-12-09 17:01 ` [PATCH v2 35/67] cachefiles: Add security derivation David Howells 2021-12-09 17:01 ` [PATCH v2 36/67] cachefiles: Register a miscdev and parse commands over it David Howells 2021-12-09 17:01 ` [PATCH v2 37/67] cachefiles: Provide a function to check how much space there is David Howells 2021-12-09 17:01 ` [PATCH v2 38/67] vfs, cachefiles: Mark a backing file in use with an inode flag David Howells 2021-12-09 17:02 ` [PATCH v2 39/67] cachefiles: Implement a function to get/create a directory in the cache David Howells 2021-12-09 17:02 ` [PATCH v2 40/67] cachefiles: Implement cache registration and withdrawal David Howells 2021-12-09 17:02 ` [PATCH v2 41/67] cachefiles: Implement volume support David Howells 2021-12-09 17:03 ` [PATCH v2 42/67] cachefiles: Add tracepoints for calls to the VFS David Howells 2021-12-09 17:03 ` [PATCH v2 43/67] cachefiles: Implement object lifecycle funcs David Howells 2021-12-09 17:03 ` [PATCH v2 44/67] cachefiles: Implement key to filename encoding David Howells 2021-12-09 17:03 ` [PATCH v2 45/67] cachefiles: Implement metadata/coherency data storage in xattrs David Howells 2021-12-09 17:03 ` [PATCH v2 46/67] cachefiles: Mark a backing file in use with an inode flag David Howells 2021-12-09 17:04 ` [PATCH v2 47/67] cachefiles: Implement culling daemon commands David Howells 2021-12-09 17:04 ` [PATCH v2 48/67] cachefiles: Implement backing file wrangling David Howells 2021-12-09 17:05 ` [PATCH v2 49/67] cachefiles: Implement begin and end I/O operation David Howells 2021-12-09 17:05 ` [PATCH v2 50/67] cachefiles: Implement cookie resize for truncate David Howells 2021-12-09 17:05 ` [PATCH v2 51/67] cachefiles: Implement the I/O routines David Howells 2021-12-09 17:06 ` [PATCH v2 52/67] cachefiles: Allow cachefiles to actually function David Howells 2021-12-09 17:06 ` [PATCH v2 53/67] fscache, cachefiles: Display stats of no-space events David Howells 2021-12-09 17:06 ` [PATCH v2 54/67] fscache, cachefiles: Display stat of culling events David Howells 2021-12-09 17:07 ` [PATCH v2 55/67] afs: Handle len being extending over page end in write_begin/write_end David Howells 2021-12-09 17:08 ` [PATCH v2 56/67] afs: Fix afs_write_end() to handle len > page size David Howells 2021-12-09 17:08 ` [PATCH v2 57/67] afs: Convert afs to use the new fscache API David Howells 2021-12-09 17:08 ` [PATCH v2 58/67] afs: Copy local writes to the cache when writing to the server David Howells 2021-12-09 17:08 ` [PATCH v2 59/67] afs: Skip truncation on the server of data we haven't written yet David Howells 2021-12-09 17:09 ` [PATCH v2 60/67] 9p: Use fscache indexing rewrite and reenable caching David Howells 2021-12-09 17:09 ` [PATCH v2 61/67] 9p: Copy local writes to the cache when writing to the server David Howells 2021-12-09 17:09 ` [PATCH v2 62/67] nfs: Convert to new fscache volume/cookie API David Howells 2021-12-11 13:22 ` David Wysochanski 2021-12-11 13:37 ` David Howells 2021-12-09 17:10 ` [PATCH v2 63/67] nfs: Implement cache I/O by accessing the cache directly David Howells 2021-12-09 17:10 ` [PATCH v2 64/67] cifs: Support fscache indexing rewrite (untested) David Howells 2021-12-09 17:10 ` [PATCH v2 65/67] ceph: conversion to new fscache API David Howells 2021-12-09 17:10 ` [PATCH v2 66/67] ceph: add fscache writeback support David Howells 2021-12-09 17:11 ` [PATCH v2 67/67] fscache: Rewrite documentation David Howells 2021-12-10 18:38 ` [PATCH v2 00/67] fscache, cachefiles: Rewrite David Wysochanski 2021-12-11 13:44 ` David Wysochanski 2021-12-13 15:41 ` [PATCH] fscache: Need to go round again after processing LRU_DISCARDING state David Howells 2021-12-13 21:05 ` David Wysochanski 2021-12-13 16:22 ` David Howells 2021-12-13 20:03 ` David Howells 2021-12-13 22:39 ` David Howells
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=163906913530.143852.18150303220217653820.stgit@warthog.procyon.org.uk \ --to=dhowells@redhat.com \ --cc=anna.schumaker@netapp.com \ --cc=asmadeus@codewreck.org \ --cc=ceph-devel@vger.kernel.org \ --cc=jefflexu@linux.alibaba.com \ --cc=jlayton@kernel.org \ --cc=linux-afs@lists.infradead.org \ --cc=linux-cachefs@redhat.com \ --cc=linux-cifs@vger.kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-nfs@vger.kernel.org \ --cc=osandov@osandov.com \ --cc=sfrench@samba.org \ --cc=torvalds@linux-foundation.org \ --cc=trondmy@hammerspace.com \ --cc=v9fs-developer@lists.sourceforge.net \ --cc=viro@zeniv.linux.org.uk \ --cc=willy@infradead.org \ --subject='Re: [PATCH v2 23/67] fscache: Provide a function to let the netfs update its coherency data' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.