]> git.baikalelectronics.ru Git - kernel.git/commit
cachefiles: Implement begin and end I/O operation
authorDavid Howells <dhowells@redhat.com>
Thu, 21 Oct 2021 10:05:53 +0000 (11:05 +0100)
committerDavid Howells <dhowells@redhat.com>
Fri, 7 Jan 2022 13:42:44 +0000 (13:42 +0000)
commit69b97e1a56603dfe2d09807705878da776242672
tree3b643ab9271c8ac0583840042286355fe27b6592
parent724af98fc23d9441572a11850a590f1cf6f13615
cachefiles: Implement begin and end I/O operation

Implement the methods for beginning and ending an I/O operation.

When called to begin an I/O operation, we are guaranteed that the cookie
has reached a certain stage (we're called by fscache after it has done a
suitable wait).

If a file is available, we paste a ref over into the cache resources for
the I/O routines to use.  This means that the object can be invalidated
whilst the I/O is ongoing without the need to synchronise as the file
pointer in the object is replaced, but the file pointer in the cache
resources is unaffected.

Ending the operation just requires ditching any refs we have and dropping
the access guarantee that fscache got for us on the cookie.

Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
cc: linux-cachefs@redhat.com
Link: https://lore.kernel.org/r/163819645033.215744.2199344081658268312.stgit@warthog.procyon.org.uk/
Link: https://lore.kernel.org/r/163906951916.143852.9531384743995679857.stgit@warthog.procyon.org.uk/
Link: https://lore.kernel.org/r/163967161222.1823006.4461476204800357263.stgit@warthog.procyon.org.uk/
Link: https://lore.kernel.org/r/164021559030.640689.3684291785218094142.stgit@warthog.procyon.org.uk/
fs/cachefiles/Makefile
fs/cachefiles/interface.c
fs/cachefiles/internal.h
fs/cachefiles/io.c [new file with mode: 0644]
include/trace/events/fscache.h