Re: [PATCH 07/11] drbd_transport_rdma: put kref in dtr_remap_tx_desc error
Philipp Reisner <[email protected]> Fri, 28 Jun 2024 14:19:48 +0200
| Newsgroups | dev.linux.lists.drbd-dev |
|---|---|
| Message-ID | <CADGDV=U1EG9Zd22ujB=fUGCoExMhCLF6fYGj171MVKxabxz=iA@mail.gmail.com> |
Hello Dongsheng, This looks wrong. In this loop, we are trying to find a path on which to repost this tx_desc. When the remapping fails, there is no reason to drop the drop a ref on the cm. So, please provide a description what you are intending here with this change? best regards, Philipp On Mon, Jun 24, 2024 at 9:27 AM zhengbing.huang <[email protected]> wrote: > > From: Dongsheng Yang <[email protected]> > > Signed-off-by: Dongsheng Yang <[email protected]> > --- > 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 c7adc87e3..77ff0055e 100644 > --- a/drbd/drbd_transport_rdma.c > +++ b/drbd/drbd_transport_rdma.c > @@ -2355,8 +2355,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) { > + pr_err("dtr_remap_tx_desc failed cm : %px\n", cm); > + kref_put(&cm->kref, dtr_destroy_cm); > continue; > + } > > err = __dtr_post_tx_desc(cm, tx_desc); > if (!err) { > -- > 2.27.0 >