summaryrefslogtreecommitdiff
path: root/include/linux/fscache.h
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2011-07-12 20:10:37 -0700
committerColin Cross <ccross@android.com>2011-07-12 20:10:37 -0700
commit75c56a81116e51c5cf15c0641906d0745188cd16 (patch)
treec1d8e7def5bbb099a39d5e9ccfb13508ea5ca46a /include/linux/fscache.h
parentb4294d618e8a19bb47826e51ae52b9fb2fe05f80 (diff)
parent620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc (diff)
Merge commit 'v3.0-rc7' into android-3.0
Diffstat (limited to 'include/linux/fscache.h')
-rw-r--r--include/linux/fscache.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/include/linux/fscache.h b/include/linux/fscache.h
index 7c4d72f5581..9ec20dec335 100644
--- a/include/linux/fscache.h
+++ b/include/linux/fscache.h
@@ -204,6 +204,8 @@ extern bool __fscache_check_page_write(struct fscache_cookie *, struct page *);
extern void __fscache_wait_on_page_write(struct fscache_cookie *, struct page *);
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 *);
/**
* fscache_register_netfs - Register a filesystem as desiring caching services
@@ -643,4 +645,23 @@ bool fscache_maybe_release_page(struct fscache_cookie *cookie,
return false;
}
+/**
+ * fscache_uncache_all_inode_pages - Uncache all an inode's pages
+ * @cookie: The cookie representing the inode's cache object.
+ * @inode: The inode to uncache pages from.
+ *
+ * Uncache all the pages in an inode that are marked PG_fscache, assuming them
+ * to be associated with the given cookie.
+ *
+ * This function may sleep. It will wait for pages that are being written out
+ * and will wait whilst the PG_fscache mark is removed by the cache.
+ */
+static inline
+void fscache_uncache_all_inode_pages(struct fscache_cookie *cookie,
+ struct inode *inode)
+{
+ if (fscache_cookie_valid(cookie))
+ __fscache_uncache_all_inode_pages(cookie, inode);
+}
+
#endif /* _LINUX_FSCACHE_H */