On Mon 24-04-17 19:41:33, Andrey Ryabinin wrote: > 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") > Signed-off-by: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx> > Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> Looks good. You can add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/block_dev.c | 11 +++++------ > 1 file changed, 5 insertions(+), 6 deletions(-) > > diff --git a/fs/block_dev.c b/fs/block_dev.c > index 065d7c5..f625dce 100644 > --- a/fs/block_dev.c > +++ b/fs/block_dev.c > @@ -104,12 +104,11 @@ void invalidate_bdev(struct block_device *bdev) > { > 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 > */ > -- > 2.10.2 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR