diff --git a/[refs] b/[refs] index 7c5c731c951c..a756560971b7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 727a53bd535fe3bde644ac346db27456ad964083 +refs/heads/master: a3e713b5fdd0e54c2e3c8909ccde2a98839e3a52 diff --git a/trunk/fs/buffer.c b/trunk/fs/buffer.c index 75cac9ada026..35fa34977e81 100644 --- a/trunk/fs/buffer.c +++ b/trunk/fs/buffer.c @@ -1478,8 +1478,10 @@ EXPORT_SYMBOL(__getblk); void __breadahead(struct block_device *bdev, sector_t block, int size) { struct buffer_head *bh = __getblk(bdev, block, size); - ll_rw_block(READA, 1, &bh); - brelse(bh); + if (likely(bh)) { + ll_rw_block(READA, 1, &bh); + brelse(bh); + } } EXPORT_SYMBOL(__breadahead); @@ -1497,7 +1499,7 @@ __bread(struct block_device *bdev, sector_t block, int size) { struct buffer_head *bh = __getblk(bdev, block, size); - if (!buffer_uptodate(bh)) + if (likely(bh) && !buffer_uptodate(bh)) bh = __bread_slow(bh); return bh; }