Patent ID: 8230117

Claim:
A method for maintaining input/output (I/O) command ordering on a bus, comprising: assigning, at an I/O controller, a channel identifier to I/O commands of an I/O stream, the channel identifier indicating the I/O commands belong to the I/O stream; assigning, at the I/O controller, a command location indicator to each of the I/O commands, the command location indicator providing an indication of which one of the I/O commands is a start command in the I/O stream and which of the I/O commands are continue commands in the I/O stream; issuing from the I/O controller, in a desired completion order, the I/O commands on the bus; preventing subsequent ones of the I/O commands in the I/O stream from completing successfully when a first one of the I/O commands does not complete successfully; and reissuing, from the I/O controller, the I/O commands on the bus starting at the first one of the I/O commands that did not complete successfully.