aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLi Wang <liwang@ubuntukylin.com>2013-12-19 09:03:49 -0500
committerIlya Dryomov <ilya.dryomov@inktank.com>2013-12-31 13:32:03 -0500
commit183028052b48db2b34c09fd54f0bc465eaa305eb (patch)
treee23c879201e76c551063722d3e31a5ed65f25604
parent3f42bc4beadef554fd0d4e6408e9142da268613b (diff)
ceph fscache: Uncaching no data page from fscache in readpage()
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> Reviewed-by: Milosz Tanski <milosz@adfin.com>
-rw-r--r--fs/ceph/addr.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
index ebda329611be..791a9a23fc60 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)
209 err = 0; 209 err = 0;
210 if (err < 0) { 210 if (err < 0) {
211 SetPageError(page); 211 SetPageError(page);
212 ceph_fscache_readpage_cancel(inode, page);
212 goto out; 213 goto out;
213 } else { 214 } else {
214 if (err < PAGE_CACHE_SIZE) { 215 if (err < PAGE_CACHE_SIZE) {