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); |
