Re: [PATCH] check bh->b_blocknr only if BH_Mapped is set

From: Andrew Morton
Date: Tue Feb 10 2009 - 15:47:00 EST


On Mon, 9 Feb 2009 17:48:11 +0530
Nikanth Karthikesan <knikanth@xxxxxxx> wrote:

> check bh->b_blocknr only if BH_Mapped is set

Why?

> diff --git a/fs/buffer.c b/fs/buffer.c
> index 665d446..782c365 100644
> --- a/fs/buffer.c
> +++ b/fs/buffer.c
> @@ -344,13 +344,13 @@ __find_get_block_slow(struct block_device *bdev,
> sector_t block)
> head = page_buffers(page);
> bh = head;
> do {
> - if (bh->b_blocknr == block) {
> + if (!buffer_mapped(bh))
> + all_mapped = 0;
> + else if (bh->b_blocknr == block) {
> ret = bh;
> get_bh(bh);
> goto out_unlock;
> }
> - if (!buffer_mapped(bh))
> - all_mapped = 0;
> bh = bh->b_this_page;
> } while (bh != head);

Does this fix some user-visible misbehaviour? If so, what was that
behaviour?

Please write good changelogs. This is not some pointless book-keeping
exercise. People will make decisions about which kernel versions
patches should be merged into, and they will want to know if a
particular patch addresses a particular problem which they are
experiencing. For this, they need information.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/