/* Reads a specified block, and returns buffer head that contains it. It returns NULL if the block was unreadable.  */
struct buffer_head* __bread(struct block_device *bdev, sector_t block, unsigned size)
/* Reads a specified block, and returns buffer head that contains it. It returns NULL if the block was unreadable.  */
struct buffer_head* __bread(struct block_device *bdev, sector_t block, unsigned size)
{
	struct buffer_head *bh = __getblk(bdev, block, size);
	if (likely(bh) && !buffer_uptodate(bh))
		bh = __bread_slow(bh);
	return bh;
}