diff options
-rw-r--r-- | fs/ceph/addr.c | 2 | ||||
-rw-r--r-- | fs/ceph/cache.h | 7 |
2 files changed, 9 insertions, 0 deletions
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 3a21a7cbc21c..1fda9cf04a81 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c | |||
@@ -398,6 +398,8 @@ static int ceph_readpages(struct file *file, struct address_space *mapping, | |||
398 | BUG_ON(rc == 0); | 398 | BUG_ON(rc == 0); |
399 | } | 399 | } |
400 | out: | 400 | out: |
401 | ceph_fscache_readpages_cancel(inode, page_list); | ||
402 | |||
401 | dout("readpages %p file %p ret %d\n", inode, file, rc); | 403 | dout("readpages %p file %p ret %d\n", inode, file, rc); |
402 | return rc; | 404 | return rc; |
403 | } | 405 | } |
diff --git a/fs/ceph/cache.h b/fs/ceph/cache.h index 0ea95cb7f389..fb326fd33251 100644 --- a/fs/ceph/cache.h +++ b/fs/ceph/cache.h | |||
@@ -58,6 +58,13 @@ static inline int ceph_release_fscache_page(struct page *page, gfp_t gfp) | |||
58 | return fscache_maybe_release_page(ci->fscache, page, gfp); | 58 | return fscache_maybe_release_page(ci->fscache, page, gfp); |
59 | } | 59 | } |
60 | 60 | ||
61 | static inline void ceph_fscache_readpages_cancel(struct inode *inode, | ||
62 | struct list_head *pages) | ||
63 | { | ||
64 | struct ceph_inode_info *ci = ceph_inode(inode); | ||
65 | return fscache_readpages_cancel(ci->fscache, pages); | ||
66 | } | ||
67 | |||
61 | #else | 68 | #else |
62 | 69 | ||
63 | static inline int ceph_fscache_register(void) | 70 | static inline int ceph_fscache_register(void) |