bsc_msc: Remove use_count from the subscriber connection

A channel will be released in case of
    * Errors via the clear_request callback...
    * no more transactions and operations are going on.

This means that if we do something without a transaction
the channel might be closed down right away. The bug fix
will be to create a transaction/operation.
diff --git a/openbsc/src/transaction.c b/openbsc/src/transaction.c
index c7478d6..ffabdd3 100644
--- a/openbsc/src/transaction.c
+++ b/openbsc/src/transaction.c
@@ -95,9 +95,6 @@
 		break;
 	}
 
-	if (trans->conn)
-		put_subscr_con(trans->conn);
-
 	if (!trans->conn && trans->subscr && trans->subscr->net) {
 		/* Stop paging on all bts' */
 		paging_request_stop(NULL, trans->subscr, NULL);
@@ -108,6 +105,10 @@
 
 	llist_del(&trans->entry);
 
+	if (trans->conn)
+		msc_release_connection(trans->conn);
+
+
 	talloc_free(trans);
 }
 
@@ -155,15 +156,17 @@
 	struct gsm_trans *trans;
 	int num = 0;
 
+	if (conn_old == conn_new) {
+		LOGP(DCC, LOGL_ERROR, "Exchanging transaction with itself.\n");
+		return;
+	}
+
 	llist_for_each_entry(trans, &net->trans_list, entry) {
 		if (trans->conn == conn_old) {
+			msc_release_connection(conn_old);
 
-			/* drop old channel use count */
-			put_subscr_con(conn_old);
 			/* assign new channel */
 			trans->conn = conn_new;
-			/* bump new channel use count */
-			use_subscr_con(conn_new);
 			num++;
 		}
 	}