Re: IDE bug - was: Re: uncorrectable ext2 errors

From: Andries Brouwer
Date: Tue Aug 12 2003 - 17:55:30 EST


On Tue, Aug 12, 2003 at 04:36:08PM +0100, Alan Cox wrote:
> On Sul, 2003-08-10 at 23:33, Andries Brouwer wrote:
> > if (drive->addressing == 1) /* 48-bit LBA */
> > return lba_48_rw_disk(drive, rq, (unsigned long long) block);
> > if (drive->select.b.lba) /* 28-bit LBA */
> > return lba_28_rw_disk(drive, rq, (unsigned long) block);
> > return chs_rw_disk(drive, rq, (unsigned long) block);
> >
> > with checking the size of block.
> > And init_idedisk_capacity() does not check addressing.

> It should also issue LBA28 if the size of th range and the end block
> fall under the LBA28 limit because thst saves you valuable I/O time.
>
> Jens had patches for that but I don't know where they went in 2.6

That is something different. The patches I gave (I gave patches didnt I?)
limit the total capacity for large disks if the controller doesnt speak lba48.

That is necessary to avoid very unpleasant surprises.

But saving some time during I/O, yes, maybe I suggested Jens what to do
and he did it. Hmm. I don't see the code anymore.
Google(Jens Andries rq_lba48) gives the patch.
Ah, I see. His patch went in - I see Changeset 1.1046.31.30 if that
means anything, - and Bartlomiej asked for it to be reverted again.
So, Jens's patches are lost for the moment. Must remember to resurrect them.

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