On Sun, 2005-07-10 at 11:58 -0400, Ben Collins wrote:
> I didn't see that the scsi code made a distinction here. I thought it did
> the conversion for all devices if use_10_for_{rw,ms} was set, and did the
> fallback when it got ILLEGAL_REQUEST. Is there something in there that
> will disable use_10_for_{rw,ms} if it's not TYPE_RBC?

It doesn't.  As you say, the flags are universal for the device,
whatever the ULD is.  However, as you also say, if MS_10 fails with
ILLEGAL_REQUEST we do fall back to MS_6.

> Ok, I see something different in the MODE_SENSE:
[...]
> Looking the pre TYPE_RBC code, I can see that the modepage change wasn't
> there, so sure enough we were using 8. Could this cause an
> ILLEGAL_REQUEST, and thus disable use_10_for_{rw,ms}?

Yes, that was the core of the bug Al was fixing.  sd has been requesting
caching data for a while now.  However, for RBC devices it was probing
the wrong mode page and failing.  After the changes we actually get the
correct caching data.

> I'm starting to understand some of the code paths here. So before all of
> this, TYPE_RBC was not recognized by the scsi layer as a "disk" type
> device (which is why sbp2 forced TYPE_DISK for TYPE_RDC devices when
> commands passed into the scsi layer).

Exactly, but trying to pretend they were true TYPE_DISK was also causing
issues (most notably the cache problem).

James


-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to