Commit 4498a8ec authored by David Howells's avatar David Howells
Browse files

netfs, fscache: Remove ->begin_cache_operation



Remove ->begin_cache_operation() in favour of just calling fscache directly.

Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
cc: Christian Brauner <christian@brauner.io>
cc: linux-fsdevel@vger.kernel.org
cc: linux-cachefs@redhat.com
parent 915cd30c
Loading
Loading
Loading
Loading
+4 −19
Original line number Diff line number Diff line
@@ -295,7 +295,6 @@ through which it can issue requests and negotiate::
	struct netfs_request_ops {
		void (*init_request)(struct netfs_io_request *rreq, struct file *file);
		void (*free_request)(struct netfs_io_request *rreq);
		int (*begin_cache_operation)(struct netfs_io_request *rreq);
		void (*expand_readahead)(struct netfs_io_request *rreq);
		bool (*clamp_length)(struct netfs_io_subrequest *subreq);
		void (*issue_read)(struct netfs_io_subrequest *subreq);
@@ -317,20 +316,6 @@ The operations are as follows:
   [Optional] This is called as the request is being deallocated so that the
   filesystem can clean up any state it has attached there.

 * ``begin_cache_operation()``

   [Optional] This is called to ask the network filesystem to call into the
   cache (if present) to initialise the caching state for this read.  The netfs
   library module cannot access the cache directly, so the cache should call
   something like fscache_begin_read_operation() to do this.

   The cache gets to store its state in ->cache_resources and must set a table
   of operations of its own there (though of a different type).

   This should return 0 on success and an error code otherwise.  If an error is
   reported, the operation may proceed anyway, just without local caching (only
   out of memory and interruption errors cause failure here).

 * ``expand_readahead()``

   [Optional] This is called to allow the filesystem to expand the size of a
@@ -460,14 +445,14 @@ When implementing a local cache to be used by the read helpers, two things are
required: some way for the network filesystem to initialise the caching for a
read request and a table of operations for the helpers to call.

The network filesystem's ->begin_cache_operation() method is called to set up a
cache and this must call into the cache to do the work.  If using fscache, for
example, the cache would call::
To begin a cache operation on an fscache object, the following function is
called::

	int fscache_begin_read_operation(struct netfs_io_request *rreq,
					 struct fscache_cookie *cookie);

passing in the request pointer and the cookie corresponding to the file.
passing in the request pointer and the cookie corresponding to the file.  This
fills in the cache resources mentioned below.

The netfs_io_request object contains a place for the cache to hang its
state::
+0 −16
Original line number Diff line number Diff line
@@ -82,25 +82,9 @@ static void v9fs_free_request(struct netfs_io_request *rreq)
	p9_fid_put(fid);
}

/**
 * v9fs_begin_cache_operation - Begin a cache operation for a read
 * @rreq: The read request
 */
static int v9fs_begin_cache_operation(struct netfs_io_request *rreq)
{
#ifdef CONFIG_9P_FSCACHE
	struct fscache_cookie *cookie = v9fs_inode_cookie(V9FS_I(rreq->inode));

	return fscache_begin_read_operation(&rreq->cache_resources, cookie);
#else
	return -ENOBUFS;
#endif
}

const struct netfs_request_ops v9fs_req_ops = {
	.init_request		= v9fs_init_request,
	.free_request		= v9fs_free_request,
	.begin_cache_operation	= v9fs_begin_cache_operation,
	.issue_read		= v9fs_issue_read,
};

+0 −13
Original line number Diff line number Diff line
@@ -366,18 +366,6 @@ static int afs_init_request(struct netfs_io_request *rreq, struct file *file)
	return 0;
}

static int afs_begin_cache_operation(struct netfs_io_request *rreq)
{
#ifdef CONFIG_AFS_FSCACHE
	struct afs_vnode *vnode = AFS_FS_I(rreq->inode);

	return fscache_begin_read_operation(&rreq->cache_resources,
					    afs_vnode_cache(vnode));
#else
	return -ENOBUFS;
#endif
}

static int afs_check_write_begin(struct file *file, loff_t pos, unsigned len,
				 struct folio **foliop, void **_fsdata)
{
@@ -394,7 +382,6 @@ static void afs_free_request(struct netfs_io_request *rreq)
const struct netfs_request_ops afs_req_ops = {
	.init_request		= afs_init_request,
	.free_request		= afs_free_request,
	.begin_cache_operation	= afs_begin_cache_operation,
	.check_write_begin	= afs_check_write_begin,
	.issue_read		= afs_issue_read,
};
+0 −1
Original line number Diff line number Diff line
@@ -509,7 +509,6 @@ static void ceph_netfs_free_request(struct netfs_io_request *rreq)
const struct netfs_request_ops ceph_netfs_ops = {
	.init_request		= ceph_init_request,
	.free_request		= ceph_netfs_free_request,
	.begin_cache_operation	= ceph_begin_cache_operation,
	.issue_read		= ceph_netfs_issue_read,
	.expand_readahead	= ceph_netfs_expand_readahead,
	.clamp_length		= ceph_netfs_clamp_length,
+0 −12
Original line number Diff line number Diff line
@@ -57,13 +57,6 @@ static inline int ceph_fscache_dirty_folio(struct address_space *mapping,
	return fscache_dirty_folio(mapping, folio, ceph_fscache_cookie(ci));
}

static inline int ceph_begin_cache_operation(struct netfs_io_request *rreq)
{
	struct fscache_cookie *cookie = ceph_fscache_cookie(ceph_inode(rreq->inode));

	return fscache_begin_read_operation(&rreq->cache_resources, cookie);
}

static inline bool ceph_is_cache_enabled(struct inode *inode)
{
	return fscache_cookie_enabled(ceph_fscache_cookie(ceph_inode(inode)));
@@ -135,11 +128,6 @@ static inline bool ceph_is_cache_enabled(struct inode *inode)
	return false;
}

static inline int ceph_begin_cache_operation(struct netfs_io_request *rreq)
{
	return -ENOBUFS;
}

static inline void ceph_fscache_note_page_release(struct inode *inode)
{
}
Loading