diff options
-rw-r--r-- | drivers/md/bcache/fs-io.c | 6 |
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; } |