Thread (104 messages) 104 messages, 12 authors, 2008-03-20

Re: [PATCH] block: fix residual byte count handling

From: FUJITA Tomonori <hidden>
Date: 2008-03-03 12:24:37
Also in: linux-scsi, lkml

On Mon, 03 Mar 2008 18:21:13 +0900
Tejun Heo [off-list ref] wrote:
FUJITA Tomonori wrote:
quoted
quoted
quoted
I can't see what changing the meaning of rq->data_len (and
investigating all the block drivers) gives us.
No matter which way you go, you change the meaning of rq->data_len and
you MUST inspect rq->data_len usage whichever way you go.
The patch doens't change that rq->data_len means the true data
length. But yeah, it breaks rq->data_len == sum(sg). So it might break
some drivers.
Yeah, that's what I was saying.  You end up breaking one of the two
assumptions.  As sglist is getting modified for any driver if it has DMA
alignment set, whether rq->data_len is adjusted together or not, sglist
and data_len usages have to be audited.
My patch (well, James' original approach) doesn't affect drivers that
don't use drain buffer. rq->data_len still means the true data length
and rq->data_len is equal to sum(sg) for them. So right now we need to
audit only libata.

But your patch changes the meaning of rq->data_len. It affects all the
drivers. So it breaks non libata stuff, like the SMP handler. We need
to audit all the drivers.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help