That won't work for iWARP. Is this code new? I didn't see any errors that would result from this code when I tested iSER over cxgb4 with the old iwarp support patches.
It's there since ~3.17 I think...
Perhaps we need another way to do this? Like a completion object in the QP that gets triggered when the SQ and RQ become empty after a transition to ERROR (and CLOSING for iwarp). Then a core service that just waits until the QP is empty. Implementation of this design would hit the providers though since only they know when the flush is completed.
ULPs need a drain functionality, so ib_drain_qp() is the way to go... How about we add a drain_qp() callout and have: if (qp->device->drain_qp) { qp->device->drain_qp(); return; } IB drain qp logic... This way iWARP devices can have their own magic on how to implement this functionality. Thoughts? -- 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