Merge branch 'for-linus2' of git://git.kernel.dk/linux-2.6-block
[pandora-kernel.git] / net / rds / iw_cm.c
index 3e9460f..b5dd6ac 100644 (file)
@@ -157,9 +157,11 @@ static void rds_iw_qp_event_handler(struct ib_event *event, void *data)
        case IB_EVENT_QP_REQ_ERR:
        case IB_EVENT_QP_FATAL:
        default:
-               rds_iw_conn_error(conn, "RDS/IW: Fatal QP Event %u - connection %pI4->%pI4...reconnecting\n",
+               rdsdebug("Fatal QP Event %u "
+                       "- connection %pI4->%pI4, reconnecting\n",
                        event->event, &conn->c_laddr,
                        &conn->c_faddr);
+               rds_conn_drop(conn);
                break;
        }
 }
@@ -450,6 +452,7 @@ int rds_iw_cm_handle_connect(struct rdma_cm_id *cm_id,
        err = rds_iw_setup_qp(conn);
        if (err) {
                rds_iw_conn_error(conn, "rds_iw_setup_qp failed (%d)\n", err);
+               mutex_unlock(&conn->c_cm_lock);
                goto out;
        }