[lkml]   [2001]   [May]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [patch] 4GB I/O, cut three

On Wed, 30 May 2001, Jens Axboe wrote:
> On Wed, May 30 2001, Mark Hemment wrote:
> > This can lead to attempt_merge() releasing the embedded request
> > structure (which, as an extract copy, has the ->q set, so to
> > blkdev_release_request() it looks like a request which originated from
> > the block layer). This isn't too healthy.
> >
> > The fix here is to add a check in __scsi_merge_requests_fn() to check
> > for ->special being non-NULL.
> How about just adding
> if (req->cmd != next->cmd
> || req->rq_dev != next->rq_dev
> || req->nr_sectors + next->nr_sectors > q->max_sectors
> || next->sem || req->special)
> return;
> ie check for special too, that would make sense to me. Either way would
> work, but I'd rather make this explicit in the block layer that 'not
> normal' requests are left alone. That includes stuff with the sem set,
> or special.

Yes, that is an equivalent fix.

In the original patch I wanted to keep the change local (ie. in the SCSI
layer). Pushing the check up the generic block layer makes sense.

Are you going to push this change to Linus, or should I?
I'm assuming the other scsi-layer changes in Alan's tree will eventually
be pushed.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:54    [W:0.041 / U:2.964 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site