On Wed, Aug 21, 2013 at 7:38 AM, Roland Dreier <roland@xxxxxxxxxxxxxxx> wrote: > I don't understand this. In fact the whole patch series looks quite > confused. COMPARE AND WRITE is a normal Data-Out command, with no > requirement for special bidirectional handling or anything like that. > The only slightly unusual thing is that a CAW command with a NUMBER OF > LOGICAL BLOCKS equal to N will actually transfer 2*N worth of data -- > one set of data for the compare operation and a second set to write if > the compare succeeds. But just to be clear, the transfer of those 2*N > blocks happens as a single transfer during the Data-Out phase. OK, I understand the patch set a bit better. You're using the bidi infrastructure to have a place to stick the data that you internally read to implement the compare, but then you end up having places like this where you have to say, "oh it's not really a bidi command, it's just a compare and write." Shouldn't there be a way to confine the COMPARE AND WRITE handling to the actual implementation of that command? Or maybe make the bidi handling more generic so that this becomes clearer? - R. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html