introduce trans_lchan_change() to update transaction about lchan change
diff --git a/openbsc/src/transaction.c b/openbsc/src/transaction.c
index 04eaa3c..9f1bbf3 100644
--- a/openbsc/src/transaction.c
+++ b/openbsc/src/transaction.c
@@ -140,3 +140,22 @@
 
 	return -1;
 }
+
+/* update all transactions to use a different LCHAN, e.g.
+ * after handover has succeeded */
+int trans_lchan_change(struct gsm_lchan *lchan_old,
+		       struct gsm_lchan *lchan_new)
+{
+	struct gsm_network *net = lchan_old->ts->trx->bts->network;
+	struct gsm_trans *trans;
+	int num = 0;
+
+	llist_for_each_entry(trans, &net->trans_list, entry) {
+		if (trans->lchan == lchan_old) {
+			trans->lchan = lchan_new;
+			num++;
+		}
+	}
+
+	return num;
+}