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