libceph: set peer name on con_open, not init
The peer name may change on each open attempt, even when the connection is reused. Signed-off-by: Sage Weil <sage@inktank.com>
This commit is contained in:
@@ -639,8 +639,7 @@ static struct ceph_osd *create_osd(struct ceph_osd_client *osdc, int onum)
|
||||
INIT_LIST_HEAD(&osd->o_osd_lru);
|
||||
osd->o_incarnation = 1;
|
||||
|
||||
ceph_con_init(&osd->o_con, osd, &osd_con_ops, &osdc->client->msgr,
|
||||
CEPH_ENTITY_TYPE_OSD, onum);
|
||||
ceph_con_init(&osd->o_con, osd, &osd_con_ops, &osdc->client->msgr);
|
||||
|
||||
INIT_LIST_HEAD(&osd->o_keepalive_item);
|
||||
return osd;
|
||||
@@ -750,7 +749,8 @@ static int __reset_osd(struct ceph_osd_client *osdc, struct ceph_osd *osd)
|
||||
ret = -EAGAIN;
|
||||
} else {
|
||||
ceph_con_close(&osd->o_con);
|
||||
ceph_con_open(&osd->o_con, &osdc->osdmap->osd_addr[osd->o_osd]);
|
||||
ceph_con_open(&osd->o_con, CEPH_ENTITY_TYPE_OSD, osd->o_osd,
|
||||
&osdc->osdmap->osd_addr[osd->o_osd]);
|
||||
osd->o_incarnation++;
|
||||
}
|
||||
return ret;
|
||||
@@ -1005,7 +1005,9 @@ static int __map_request(struct ceph_osd_client *osdc,
|
||||
dout("map_request osd %p is osd%d\n", req->r_osd, o);
|
||||
__insert_osd(osdc, req->r_osd);
|
||||
|
||||
ceph_con_open(&req->r_osd->o_con, &osdc->osdmap->osd_addr[o]);
|
||||
ceph_con_open(&req->r_osd->o_con,
|
||||
CEPH_ENTITY_TYPE_OSD, o,
|
||||
&osdc->osdmap->osd_addr[o]);
|
||||
}
|
||||
|
||||
if (req->r_osd) {
|
||||
|
Reference in New Issue
Block a user