diff options
-rw-r--r-- | net/ceph/osd_client.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c index caa092eb0009..6ea2b892f44b 100644 --- a/net/ceph/osd_client.c +++ b/net/ceph/osd_client.c | |||
@@ -1421,6 +1421,15 @@ void ceph_osdc_handle_map(struct ceph_osd_client *osdc, struct ceph_msg *msg) | |||
1421 | done: | 1421 | done: |
1422 | downgrade_write(&osdc->map_sem); | 1422 | downgrade_write(&osdc->map_sem); |
1423 | ceph_monc_got_osdmap(&osdc->client->monc, osdc->osdmap->epoch); | 1423 | ceph_monc_got_osdmap(&osdc->client->monc, osdc->osdmap->epoch); |
1424 | |||
1425 | /* | ||
1426 | * subscribe to subsequent osdmap updates if full to ensure | ||
1427 | * we find out when we are no longer full and stop returning | ||
1428 | * ENOSPC. | ||
1429 | */ | ||
1430 | if (ceph_osdmap_flag(osdc->osdmap, CEPH_OSDMAP_FULL)) | ||
1431 | ceph_monc_request_next_osdmap(&osdc->client->monc); | ||
1432 | |||
1424 | send_queued(osdc); | 1433 | send_queued(osdc); |
1425 | up_read(&osdc->map_sem); | 1434 | up_read(&osdc->map_sem); |
1426 | wake_up_all(&osdc->client->auth_wq); | 1435 | wake_up_all(&osdc->client->auth_wq); |