From 9b8dd1e8a55a12b67240b6b28160ac8c1dec0172 Mon Sep 17 00:00:00 2001 From: Milosz Tanski Date: Tue, 3 Sep 2013 19:11:01 -0400 Subject: [PATCH] ceph: ceph_readpage_to_fscache didn't check if marked Previously ceph_readpage_to_fscache did not call if page was marked as cached before calling fscache_write_page resulting in a BUG inside of fscache. FS-Cache: Assertion failed ------------[ cut here ]------------ kernel BUG at fs/fscache/page.c:874! invalid opcode: 0000 [#1] SMP Call Trace: [] __ceph_readpage_to_fscache+0x66/0x80 [ceph] [] readpage_nounlock+0x124/0x210 [ceph] [] ceph_readpage+0x1d/0x40 [ceph] [] generic_file_aio_read+0x1f6/0x700 [] ceph_aio_read+0x5fc/0xab0 [ceph] Signed-off-by: Milosz Tanski Signed-off-by: Sage Weil --- fs/ceph/cache.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/ceph/cache.c b/fs/ceph/cache.c index 5c413ec..c737ae9 100644 --- a/fs/ceph/cache.c +++ b/fs/ceph/cache.c @@ -311,6 +311,9 @@ void ceph_readpage_to_fscache(struct inode *inode, struct page *page) struct ceph_inode_info *ci = ceph_inode(inode); int ret; + if (!PageFsCache(page)) + return; + if (!cache_valid(ci)) return; -- 2.7.4