vlr_subscr: use osmo_use_count

Depends: Ife31e6798b4e728a23913179e346552a7dd338c0 (libosmocore)
Change-Id: Ib06d030e8464abe415ff597d462ed40eeddef475
diff --git a/src/libmsc/transaction.c b/src/libmsc/transaction.c
index 66126e6..b38c152 100644
--- a/src/libmsc/transaction.c
+++ b/src/libmsc/transaction.c
@@ -93,6 +93,11 @@
 	return NULL;
 }
 
+static const char *trans_vsub_use(uint8_t proto)
+{
+	return get_value_string_or_null(gsm48_pdisc_names, proto) ? : "trans-proto-unknown";
+}
+
 /*! Allocate a new transaction and add it to network list
  *  \param[in] net Netwokr in which we allocate transaction
  *  \param[in] subscr Subscriber for which we allocate transaction
@@ -121,8 +126,8 @@
 	if (!trans)
 		return NULL;
 
-	trans->vsub = vlr_subscr_get(vsub);
-
+	vlr_subscr_get(vsub, trans_vsub_use(protocol));
+	trans->vsub = vsub;
 	trans->protocol = protocol;
 	trans->transaction_id = trans_id;
 	trans->callref = callref;
@@ -165,7 +170,7 @@
 	}
 
 	if (trans->vsub) {
-		vlr_subscr_put(trans->vsub);
+		vlr_subscr_put(trans->vsub, trans_vsub_use(trans->protocol));
 		trans->vsub = NULL;
 	}