|
@@ -1270,7 +1270,7 @@ static void reset_changed_osds(struct ceph_osd_client *osdc)
|
|
|
* Requeue requests whose mapping to an OSD has changed. If requests map to
|
|
|
* no osd, request a new map.
|
|
|
*
|
|
|
- * Caller should hold map_sem for read and request_mutex.
|
|
|
+ * Caller should hold map_sem for read.
|
|
|
*/
|
|
|
static void kick_requests(struct ceph_osd_client *osdc, int force_resend)
|
|
|
{
|
|
@@ -1345,6 +1345,7 @@ static void kick_requests(struct ceph_osd_client *osdc, int force_resend)
|
|
|
dout("%d requests for down osds, need new map\n", needmap);
|
|
|
ceph_monc_request_next_osdmap(&osdc->client->monc);
|
|
|
}
|
|
|
+ reset_changed_osds(osdc);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1401,7 +1402,6 @@ void ceph_osdc_handle_map(struct ceph_osd_client *osdc, struct ceph_msg *msg)
|
|
|
osdc->osdmap = newmap;
|
|
|
}
|
|
|
kick_requests(osdc, 0);
|
|
|
- reset_changed_osds(osdc);
|
|
|
} else {
|
|
|
dout("ignoring incremental map %u len %d\n",
|
|
|
epoch, maplen);
|