summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/md/bcache/fs-io.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/md/bcache/fs-io.c b/drivers/md/bcache/fs-io.c
index 471cb0619e4d..635afcb140fa 100644
--- a/drivers/md/bcache/fs-io.c
+++ b/drivers/md/bcache/fs-io.c
@@ -745,6 +745,9 @@ int bch_readpages(struct file *file, struct address_space *mapping,
pr_debug("reading %u pages", nr_pages);
+ if (current->pagecache_lock != &mapping->add_lock)
+ pagecache_add_get(&mapping->add_lock);
+
for_each_readpage_page(mapping, pages, nr_pages, page) {
again:
if (!rbio) {
@@ -767,6 +770,9 @@ again:
if (rbio)
bchfs_read(c, rbio, inode->i_ino);
+ if (current->pagecache_lock != &mapping->add_lock)
+ pagecache_add_put(&mapping->add_lock);
+
pr_debug("success");
return 0;
}