Messages in this thread Patch in this message | | | From | Herbert Xu <> | Subject | Re: [BLOCK] bh: Ensure bh fits within a page | Date | Wed, 02 Aug 2006 09:30:51 +1000 |
| |
Jens Axboe <axboe@suse.de> wrote: > > That looks really dangerous, I'd prefer that to be a BUG_ON() as well to > prevent nastiness further down.
OK, I used a WARN_ON mainly because ext3 has been doing this for years without killing anyone until now :)
[BLOCK] bh: Ensure bh fits within a page
There is a bug in jbd with slab debugging enabled where it was submitting a bh obtained via jbd_rep_kmalloc which crossed a page boundary. A lot of time was spent on tracking this down because the symptoms were far off from where the problem was.
This patch adds a sanity check to submit_bh so we can immediately spot anyone doing similar things in future.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- diff --git a/fs/buffer.c b/fs/buffer.c index 71649ef..ff34881 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -2790,6 +2790,7 @@ int submit_bh(int rw, struct buffer_head BUG_ON(!buffer_locked(bh)); BUG_ON(!buffer_mapped(bh)); BUG_ON(!bh->b_end_io); + BUG_ON(bh_offset(bh) + bh->b_size > PAGE_SIZE); if (buffer_ordered(bh) && (rw == WRITE)) rw = WRITE_BARRIER; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |