rbd.c (144cba1493fdd6e3e1980e439a31df877831ebcd) rbd.c (a319bf56a617354e62cf5f774d2ca4e1a8a3bff3)
1
2/*
3 rbd.c -- Export ceph rados objects as a Linux block device
4
5
6 based on drivers/block/osdblk.c:
7
8 Copyright 2009 Red Hat, Inc.

--- 4949 unchanged lines hidden (view full) ---

4958 return ret;
4959}
4960
4961/*
4962 * Return pool id (>= 0) or a negative error code.
4963 */
4964static int rbd_add_get_pool_id(struct rbd_client *rbdc, const char *pool_name)
4965{
1
2/*
3 rbd.c -- Export ceph rados objects as a Linux block device
4
5
6 based on drivers/block/osdblk.c:
7
8 Copyright 2009 Red Hat, Inc.

--- 4949 unchanged lines hidden (view full) ---

4958 return ret;
4959}
4960
4961/*
4962 * Return pool id (>= 0) or a negative error code.
4963 */
4964static int rbd_add_get_pool_id(struct rbd_client *rbdc, const char *pool_name)
4965{
4966 struct ceph_options *opts = rbdc->client->options;
4966 u64 newest_epoch;
4967 u64 newest_epoch;
4967 unsigned long timeout = rbdc->client->options->mount_timeout * HZ;
4968 int tries = 0;
4969 int ret;
4970
4971again:
4972 ret = ceph_pg_poolid_by_name(rbdc->client->osdc.osdmap, pool_name);
4973 if (ret == -ENOENT && tries++ < 1) {
4974 ret = ceph_monc_do_get_version(&rbdc->client->monc, "osdmap",
4975 &newest_epoch);
4976 if (ret < 0)
4977 return ret;
4978
4979 if (rbdc->client->osdc.osdmap->epoch < newest_epoch) {
4980 ceph_monc_request_next_osdmap(&rbdc->client->monc);
4981 (void) ceph_monc_wait_osdmap(&rbdc->client->monc,
4968 int tries = 0;
4969 int ret;
4970
4971again:
4972 ret = ceph_pg_poolid_by_name(rbdc->client->osdc.osdmap, pool_name);
4973 if (ret == -ENOENT && tries++ < 1) {
4974 ret = ceph_monc_do_get_version(&rbdc->client->monc, "osdmap",
4975 &newest_epoch);
4976 if (ret < 0)
4977 return ret;
4978
4979 if (rbdc->client->osdc.osdmap->epoch < newest_epoch) {
4980 ceph_monc_request_next_osdmap(&rbdc->client->monc);
4981 (void) ceph_monc_wait_osdmap(&rbdc->client->monc,
4982 newest_epoch, timeout);
4982 newest_epoch,
4983 opts->mount_timeout);
4983 goto again;
4984 } else {
4985 /* the osdmap we have is new enough */
4986 return -ENOENT;
4987 }
4988 }
4989
4990 return ret;

--- 762 unchanged lines hidden ---
4984 goto again;
4985 } else {
4986 /* the osdmap we have is new enough */
4987 return -ENOENT;
4988 }
4989 }
4990
4991 return ret;

--- 762 unchanged lines hidden ---