The following patches made over Linus's current tree cleanup the locking in libiscsi so we again, for the main IO path, have the frwd lock only used in the xmit/queue path and the back lock used in the completion path and no taskqueuelock. The EH paths still use both the frwd/back lock though. These patches are still not ready for merging. I have now tested iscsi_tcp, ib_iser, and be2iscsi. Manish tested qedi but it failed. However, this version should work for qedi and bnx2i. I had forgot to convert one of the mgmt task paths those drivers use. V2: - Fix issue where we used the back lock to make sure all recv completion paths saw the window reopened flag. - Fix ping_task path, so it accounts for send/completion race Lee had fixed. - Fix bug hit with qedi and bnx2i during testing where I forgot to allow this drivers to preallocate mgmt task resources. - Tested ib_iser and be2iscsi.