[PATCH 2/4] rdma: Put kref in dtr_remap_tx_desc error

zhengbing.huang zhengbing.huang at easystack.cn
Sat Dec 6 09:12:25 CET 2025


From: Dongsheng Yang <dongsheng.yang at easystack.cn>

The dtr_select_and_get_cm_for_tx() get a ref, we need put it before
continue.

Signed-off-by: Dongsheng Yang <dongsheng.yang at easystack.cn>
---
 drbd/drbd_transport_rdma.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drbd/drbd_transport_rdma.c b/drbd/drbd_transport_rdma.c
index 3addb7e42..5a28f58f0 100644
--- a/drbd/drbd_transport_rdma.c
+++ b/drbd/drbd_transport_rdma.c
@@ -2391,8 +2391,11 @@ static int dtr_repost_tx_desc(struct dtr_cm *old_cm, struct dtr_tx_desc *tx_desc
 			return -ECONNRESET;
 
 		err = dtr_remap_tx_desc(old_cm, cm, tx_desc);
-		if (err)
+		if (err) {
+			tr_err(&rdma_transport->transport, "dtr_remap_tx_desc failed: %d\n", err);
+			kref_put(&cm->kref, dtr_destroy_cm);
 			continue;
+		}
 
 		err = __dtr_post_tx_desc(cm, tx_desc);
 		if (!err) {
-- 
2.43.0



More information about the drbd-dev mailing list