Re: about ll_rw_blk.c of void generic_make_request(struct bio *bio)

From: Jens Axboe
Date: Thu Mar 30 2006 - 10:55:23 EST


On Wed, Mar 29 2006, erich wrote:
> Dear Jens Axboe,
>
> I am an engineer of Areca (SATA RAID controller producer).
> I have coding linux driver for kernel.org "arcmsr".
> I have got dump message %s: rw=%ld, want=%Lu, limit=%Lu message from ext2
> file system.
> But I am do well at Ext3 and all linux files system.
> This issue only occur at read command.
> Could you give me some info how to fix this bug in my linux scsi raid
> driver?
>
> About the code ll_rw_blk.c mention that "it may well happen - the kernel
> calls bread() without checking the size of the device, e.g., when mounting
> a device."
>
> I hope that you have more experience with it and knew what's wrong I am
> doing in my driver.
>
>
> generic_make_request(struct bio *bio)
>
> if (maxsector)
> {
> sector_t sector = bio->bi_sector;
>
> if (maxsector < nr_sectors || maxsector - nr_sectors < sector)
> {
> /*
> * This may well happen - the kernel calls bread()
> * without checking the size of the device, e.g., when
> * mounting a device.
> */
> handle_bad_sector(bio);
> goto end_io;
> }
> }

I can't really say, from my recollection of leafing over lkml emails, I
seem to recall someone saying he hit this with a newer kernel where as
the older one did not?

What are the sectors exactly it complains about, eg the full line you
see?

--
Jens Axboe

-
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/