From 0a7e9259b5fd9324e204a5e3401993c5af3f9388 Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Sun, 30 Jul 2006 03:03:28 -0700 Subject: [PATCH] --- yaml --- r: 32930 b: refs/heads/master c: 0e1dfc66b6ec94984a4778132147a8aa36461d58 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/buffer.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 6e1d3b1ee90b..06537270e977 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a268cefebceeb2046dfdfa301f041c2468536852 +refs/heads/master: 0e1dfc66b6ec94984a4778132147a8aa36461d58 diff --git a/trunk/fs/buffer.c b/trunk/fs/buffer.c index 3660dcb97591..71649ef9b658 100644 --- a/trunk/fs/buffer.c +++ b/trunk/fs/buffer.c @@ -470,13 +470,18 @@ __find_get_block_slow(struct block_device *bdev, sector_t block) pass does the actual I/O. */ void invalidate_bdev(struct block_device *bdev, int destroy_dirty_buffers) { + struct address_space *mapping = bdev->bd_inode->i_mapping; + + if (mapping->nrpages == 0) + return; + invalidate_bh_lrus(); /* * FIXME: what about destroy_dirty_buffers? * We really want to use invalidate_inode_pages2() for * that, but not until that's cleaned up. */ - invalidate_inode_pages(bdev->bd_inode->i_mapping); + invalidate_inode_pages(mapping); } /*