summaryrefslogtreecommitdiff
path: root/fs/ceph/cache.h
diff options
context:
space:
mode:
authorJeff Layton <jlayton@kernel.org>2020-06-01 10:10:21 -0400
committerIlya Dryomov <idryomov@gmail.com>2021-04-27 23:52:22 +0200
commitf0702876e152f0443911514aec8b2bf563a2432b (patch)
treeb44fd061cef9b002173114641a28516c2a9f2345 /fs/ceph/cache.h
parent10a7052c7868bc7bc72d947f5aac6f768928db87 (diff)
ceph: convert ceph_readpage to netfs_readpage
Have the ceph KConfig select NETFS_SUPPORT. Add a new netfs ops structure and the operations for it. Convert ceph_readpage to use the new netfs_readpage helper. Signed-off-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/ceph/cache.h')
-rw-r--r--fs/ceph/cache.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/fs/ceph/cache.h b/fs/ceph/cache.h
index 10c21317b62f..1409d6149281 100644
--- a/fs/ceph/cache.h
+++ b/fs/ceph/cache.h
@@ -9,6 +9,8 @@
#ifndef _CEPH_CACHE_H
#define _CEPH_CACHE_H
+#include <linux/netfs.h>
+
#ifdef CONFIG_CEPH_FSCACHE
extern struct fscache_netfs ceph_cache_netfs;
@@ -35,11 +37,31 @@ static inline void ceph_fscache_inode_init(struct ceph_inode_info *ci)
ci->fscache = NULL;
}
+static inline struct fscache_cookie *ceph_fscache_cookie(struct ceph_inode_info *ci)
+{
+ return ci->fscache;
+}
+
static inline void ceph_fscache_invalidate(struct inode *inode)
{
fscache_invalidate(ceph_inode(inode)->fscache);
}
+static inline bool ceph_is_cache_enabled(struct inode *inode)
+{
+ struct fscache_cookie *cookie = ceph_fscache_cookie(ceph_inode(inode));
+
+ if (!cookie)
+ return false;
+ return fscache_cookie_enabled(cookie);
+}
+
+static inline int ceph_begin_cache_operation(struct netfs_read_request *rreq)
+{
+ struct fscache_cookie *cookie = ceph_fscache_cookie(ceph_inode(rreq->inode));
+
+ return fscache_begin_read_operation(rreq, cookie);
+}
#else
static inline int ceph_fscache_register(void)
@@ -65,6 +87,11 @@ static inline void ceph_fscache_inode_init(struct ceph_inode_info *ci)
{
}
+static inline struct fscache_cookie *ceph_fscache_cookie(struct ceph_inode_info *ci)
+{
+ return NULL;
+}
+
static inline void ceph_fscache_register_inode_cookie(struct inode *inode)
{
}
@@ -82,6 +109,15 @@ static inline void ceph_fscache_invalidate(struct inode *inode)
{
}
+static inline bool ceph_is_cache_enabled(struct inode *inode)
+{
+ return false;
+}
+
+static inline int ceph_begin_cache_operation(struct netfs_read_request *rreq)
+{
+ return -ENOBUFS;
+}
#endif
#endif /* _CEPH_CACHE_H */