@@ -245,6 +245,8 @@ extern bool __fscache_maybe_release_page(struct fscache_cookie *, struct page *,
gfp_t);
extern void __fscache_uncache_all_inode_pages(struct fscache_cookie *,
struct inode *);
+extern void __fscache_readpage_cancel(struct fscache_cookie *cookie,
+ struct page *page);
extern void __fscache_readpages_cancel(struct fscache_cookie *cookie,
struct list_head *pages);
extern void __fscache_disable_cookie(struct fscache_cookie *, bool);
@@ -633,6 +635,15 @@ int fscache_alloc_page(struct fscache_cookie *cookie,
return -ENOBUFS;
}
+static inline
+void fscache_readpage_cancel(struct fscache_cookie *cookie,
+ struct page *page)
+{
+ if (fscache_cookie_valid(cookie))
+ __fscache_readpage_cancel(cookie, page);
+}
+
+
/**
* fscache_readpages_cancel - Cancel read/alloc on pages
* @cookie: The cookie representing the inode's cache object.
Introduce a new API fscache_readpage_cancel() for uncaching one single no-data page from fscache. Signed-off-by: Li Wang <liwang@ubuntukylin.com> --- include/linux/fscache.h | 11 +++++++++++ 1 file changed, 11 insertions(+)