summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
caa2468)
To avoid confusion this fix moved the freeing a struct kib_conn outside of
the function kiblnd_destroy_conn().
Change-Id: Iae28802f5d319570064a504feb14dffd13a22b84
Signed-off-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-on: https://review.whamcloud.com/31273
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Sonia Sharma <sonia.sharma@intel.com>
Reviewed-by: Doug Oucharek <dougso@me.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
- kiblnd_destroy_conn(conn, true);
+ kiblnd_destroy_conn(conn);
+ LIBCFS_FREE(conn, sizeof(*conn));
failed_1:
LIBCFS_FREE(init_qp_attr, sizeof(*init_qp_attr));
failed_0:
failed_1:
LIBCFS_FREE(init_qp_attr, sizeof(*init_qp_attr));
failed_0:
-kiblnd_destroy_conn(kib_conn_t *conn, bool free_conn)
+kiblnd_destroy_conn(kib_conn_t *conn)
{
struct rdma_cm_id *cmid = conn->ibc_cmid;
kib_peer_ni_t *peer_ni = conn->ibc_peer;
{
struct rdma_cm_id *cmid = conn->ibc_cmid;
kib_peer_ni_t *peer_ni = conn->ibc_peer;
rdma_destroy_id(cmid);
atomic_dec(&net->ibn_nconns);
}
rdma_destroy_id(cmid);
atomic_dec(&net->ibn_nconns);
}
-
- if (free_conn)
- LIBCFS_FREE(conn, sizeof(*conn));
kib_conn_t *kiblnd_create_conn(kib_peer_ni_t *peer_ni, struct rdma_cm_id *cmid,
int state, int version);
kib_conn_t *kiblnd_create_conn(kib_peer_ni_t *peer_ni, struct rdma_cm_id *cmid,
int state, int version);
-void kiblnd_destroy_conn(kib_conn_t *conn, bool free_conn);
+void kiblnd_destroy_conn(kib_conn_t *conn);
void kiblnd_close_conn (kib_conn_t *conn, int error);
void kiblnd_close_conn_locked (kib_conn_t *conn, int error);
void kiblnd_close_conn (kib_conn_t *conn, int error);
void kiblnd_close_conn_locked (kib_conn_t *conn, int error);
spin_unlock_irqrestore(lock, flags);
dropped_lock = 1;
spin_unlock_irqrestore(lock, flags);
dropped_lock = 1;
- kiblnd_destroy_conn(conn, !peer_ni);
+ kiblnd_destroy_conn(conn);
spin_lock_irqsave(lock, flags);
spin_lock_irqsave(lock, flags);
+ if (!peer_ni) {
+ LIBCFS_FREE(conn, sizeof(*conn));
conn->ibc_peer = peer_ni;
if (peer_ni->ibp_reconnected < KIB_RECONN_HIGH_RACE)
conn->ibc_peer = peer_ni;
if (peer_ni->ibp_reconnected < KIB_RECONN_HIGH_RACE)