Skip to contentSkip to conversation

Patch "fs/block_dev: always invalidate cleancache in invalidate_bdev()" has been added to the 4.11-stable tree

PATCH [email protected] 1 participant 1 message May 17, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

fs/block_dev: always invalidate cleancache in invalidate_bdev()

to the 4.11-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
fs-block_dev-always-invalidate-cleancache-in-invalidate_bdev.patch
and it can be found in the queue-4.11 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From a5f6a6a9c72eac38a7fadd1a038532bc8516337c Mon Sep 17 00:00:00 2001

From: Andrey Ryabinin <[email protected]>
Date: Wed, 3 May 2017 14:56:02 -0700
Subject: fs/block_dev: always invalidate cleancache in invalidate_bdev()

From: Andrey Ryabinin <[email protected]>

commit a5f6a6a9c72eac38a7fadd1a038532bc8516337c upstream.

invalidate_bdev() calls cleancache_invalidate_inode() iff ->nrpages != 0 which doen't make any sense.

Make sure that invalidate_bdev() always calls cleancache_invalidate_inode() regardless of mapping->nrpages value.

Fixes c515e1fd361c ("mm/fs: add hooks to support cleancache")
Cc Alexander Viro <[email protected]>
Cc Ross Zwisler <[email protected]>
Cc Jens Axboe <[email protected]>
Cc Johannes Weiner <[email protected]>
Cc Alexey Kuznetsov <[email protected]>
Cc Christoph Hellwig <[email protected]>
Cc Nikolay Borisov <[email protected]>
---
 fs/block_dev.c |   11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)
fs/block_dev.c +5 -6
@@ -103,12 +103,11 @@ void invalidate_bdev(struct block_device
 {
 	struct address_space *mapping = bdev->bd_inode->i_mapping;
 
-	if (mapping->nrpages == 0)
-		return;
-
-	invalidate_bh_lrus();
-	lru_add_drain_all();	/* make sure all lru add caches are flushed */
-	invalidate_mapping_pages(mapping, 0, -1);
+	if (mapping->nrpages) {
+		invalidate_bh_lrus();
+		lru_add_drain_all();	/* make sure all lru add caches are flushed */
+		invalidate_mapping_pages(mapping, 0, -1);
+	}
 	/* 99% of the time, we don't need to flush the cleancache on the bdev.
 	 * But, for the strange corners, lets be cautious
 	 */

Patches currently in stable-queue which might be from [email protected] are

queue-4.11/fs-block_dev-always-invalidate-cleancache-in-invalidate_bdev.patch queue-4.11/mm-prevent-potential-recursive-reclaim-due-to-clearing-pf_memalloc.patch queue-4.11/fs-fix-data-invalidation-in-the-cleancache-during-direct-io.patch