aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/ceph/addr.c2
-rw-r--r--fs/ceph/cache.h7
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 }
400out: 400out:
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
61static 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
63static inline int ceph_fscache_register(void) 70static inline int ceph_fscache_register(void)