diff options
author | Noah Watkins <noahwatkins@gmail.com> | 2013-03-14 13:27:27 -0700 |
---|---|---|
committer | Noah Watkins <noahwatkins@gmail.com> | 2013-03-14 13:27:56 -0700 |
commit | 1cbcc044673d30a940f1b7415f19f0dcf1430511 (patch) | |
tree | 0173ca22e7f87e9c2c9129a5d329b91c087b0678 /src/libcephfs.cc | |
parent | 41897fcba168b409fd370d0b26016fe4d30c5a59 (diff) | |
parent | 47378d69ed475e720bab19176b893697178a6dcf (diff) | |
download | ceph-1cbcc044673d30a940f1b7415f19f0dcf1430511.tar.gz |
Merge remote-tracking branch 'origin/wip-osd-addr-api'
Reviewed-by: Sage Weil <sage@inktank.com>
Diffstat (limited to 'src/libcephfs.cc')
-rw-r--r-- | src/libcephfs.cc | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/libcephfs.cc b/src/libcephfs.cc index ef988855425..74cd8b70417 100644 --- a/src/libcephfs.cc +++ b/src/libcephfs.cc @@ -854,6 +854,25 @@ extern "C" int ceph_get_osd_crush_location(struct ceph_mount_info *cmount, return needed; } +extern "C" int ceph_get_osd_addr(struct ceph_mount_info *cmount, int osd, + struct sockaddr_storage *addr) +{ + if (!cmount->is_mounted()) + return -ENOTCONN; + + if (!addr) + return -EINVAL; + + entity_addr_t address; + int ret = cmount->get_client()->get_osd_addr(osd, address); + if (ret < 0) + return ret; + + memcpy(addr, &address.ss_addr(), sizeof(*addr)); + + return 0; +} + extern "C" int ceph_get_file_stripe_address(struct ceph_mount_info *cmount, int fh, loff_t offset, struct sockaddr_storage *addr, int naddr) { |