diff mbox

[2/2] ceph fscache: Uncaching no data page from fscache in readpage()

Message ID fe9e6fbe07dfdd26c16aa577758a9f4f799c5dfe.1387461299.git.liwang@ubuntukylin.com (mailing list archive)
State New, archived
Headers show

Commit Message

Li Wang Dec. 19, 2013, 2:03 p.m. UTC
Currently, if one new page allocated into fscache in readpage(), however, 
with no data read into due to error encountered during reading from OSDs, 
the slot in fscache is not uncached. This patch fixes this.

Signed-off-by: Li Wang <liwang@ubuntukylin.com>
---
 fs/ceph/addr.c |    1 +
 1 file changed, 1 insertion(+)
diff mbox

Patch

diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
index ec3ba43..0cc9749 100644
--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
@@ -209,6 +209,7 @@  static int readpage_nounlock(struct file *filp, struct page *page)
 		err = 0;
 	if (err < 0) {
 		SetPageError(page);
+		ceph_fscache_readpage_cancel(inode, page);
 		goto out;
 	} else {
 		if (err < PAGE_CACHE_SIZE) {