From 9eb9cf14ee78a858b095967be2068051ee68faa6 Mon Sep 17 00:00:00 2001 From: eeb <eeb> Date: Wed, 9 Feb 2005 12:33:10 +0000 Subject: [PATCH] * Bug 5676 fix: keep extra ref on peer until all done in ksocknal_del_peer_locked CVS: --- lnet/klnds/socklnd/socklnd.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lnet/klnds/socklnd/socklnd.c b/lnet/klnds/socklnd/socklnd.c index 07078ca59a..6a71d07e6b 100644 --- a/lnet/klnds/socklnd/socklnd.c +++ b/lnet/klnds/socklnd/socklnd.c @@ -499,6 +499,9 @@ ksocknal_del_peer_locked (ksock_peer_t *peer, __u32 ip, int single_share) LASSERT (!peer->ksnp_closing); + /* Extra ref prevents peer disappearing until I'm done with it */ + atomic_inc(&peer->ksnp_refcount); + list_for_each_safe (tmp, nxt, &peer->ksnp_routes) { route = list_entry(tmp, ksock_route_t, ksnr_list); @@ -548,6 +551,7 @@ ksocknal_del_peer_locked (ksock_peer_t *peer, __u32 ip, int single_share) } } + ksocknal_put_peer(peer); /* NB peer unlinks itself when last conn/route is removed */ } -- GitLab