From 014ecb8a15fe0a50e3a714367ca16d2219225531 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Thu, 27 Jan 2011 14:31:31 -0800 Subject: [PATCH] librbd: remove pool_t parameter from some api calls --- src/include/librbd.hpp | 24 +++++++++++--------- src/librbd.cc | 51 +++++++++++++++++++++--------------------- 2 files changed, 39 insertions(+), 36 deletions(-) diff --git a/src/include/librbd.hpp b/src/include/librbd.hpp index f8d93507be96..e730d0ce0ca0 100644 --- a/src/include/librbd.hpp +++ b/src/include/librbd.hpp @@ -65,22 +65,26 @@ public: int open_pool(const char *pool_name, pool_t *pool); int close_pool(pool_t pool); - int open_image(pool_t pool, const char *name, image_t *image, const char *snap_name); - int close_image(image_t image); + + int list(pool_t pool, std::vector& names); int create(pool_t pool, const char *name, size_t size); int remove(pool_t pool, const char *name); - int resize(pool_t pool, image_t image, size_t size); - int stat(pool_t pool, image_t image, image_info_t& info); - int list(pool_t pool, std::vector& names); int copy(pool_t src_pool, const char *srcname, pool_t dest_pool, const char *destname); int rename(pool_t src_pool, const char *srcname, const char *destname); - int create_snap(pool_t pool, image_t image, const char *snap_name); - int remove_snap(pool_t pool, image_t image, const char *snap_name); - int rollback_snap(pool_t pool, image_t image, const char *snap_name); - int list_snaps(pool_t pool, image_t image, std::vector& snaps); - int set_snap(pool_t pool, image_t image, const char *snap_name); + int open_image(pool_t pool, const char *name, image_t *image, const char *snap_name); + int close_image(image_t image); + int resize(image_t image, size_t size); + int stat(image_t image, image_info_t& info); + + /* snapshots */ + int list_snaps(image_t image, std::vector& snaps); + int create_snap(image_t image, const char *snap_name); + int remove_snap(image_t image, const char *snap_name); + int rollback_snap(image_t image, const char *snap_name); + int set_snap(image_t image, const char *snap_name); + /* lower level access */ void get_rados_pools(pool_t pool, librados::pool_t *md_pool, librados::pool_t *data_pool); }; diff --git a/src/librbd.cc b/src/librbd.cc index 698ee2839244..d5cb14e91132 100644 --- a/src/librbd.cc +++ b/src/librbd.cc @@ -56,6 +56,7 @@ namespace librbd { vector snaps; uint64_t snapid; std::string name; + struct PoolCtx *pctx; }; class RBDClient @@ -817,11 +818,6 @@ int librbd::RBDClient::set_snap(PoolCtx *pp, ImageCtx *ictx, const char *snap_na return 0; } -void librbd::RBD::version(int *major, int *minor, int *extra) -{ - librbd_version(major, minor, extra); -} - int librbd::RBDClient::open_pools(const char *pool_name, PoolCtx *ctx) { librados::pool_t pool, md_pool; @@ -843,6 +839,15 @@ int librbd::RBDClient::open_pools(const char *pool_name, PoolCtx *ctx) return 0; } +/* + RBD +*/ + +void librbd::RBD::version(int *major, int *minor, int *extra) +{ + librbd_version(major, minor, extra); +} + int librbd::RBD::initialize(int argc, const char *argv[]) { client = new RBDClient(); @@ -886,6 +891,7 @@ int librbd::RBD::open_image(pool_t pool, const char *name, image_t *image, const ImageCtx *ictx = new librbd::ImageCtx; if (!ictx) return -ENOMEM; + ictx->pctx = pctx; ictx->name = name; string md_oid = name; @@ -931,19 +937,17 @@ int librbd::RBD::remove(pool_t pool, const char *name) return r; } -int librbd::RBD::resize(pool_t pool, image_t image, size_t size) +int librbd::RBD::resize(image_t image, size_t size) { - PoolCtx *ctx = (PoolCtx *)pool; ImageCtx *ictx = (ImageCtx *)image; - int r = client->resize(ctx, ictx, size); + int r = client->resize(ictx->pctx, ictx, size); return r; } -int librbd::RBD::stat(pool_t pool, image_t image, image_info_t& info) +int librbd::RBD::stat(image_t image, image_info_t& info) { - PoolCtx *ctx = (PoolCtx *)pool; ImageCtx *ictx = (ImageCtx *)image; - int r = client->info(ctx, ictx, info); + int r = client->info(ictx->pctx, ictx, info); return r; } @@ -969,43 +973,38 @@ int librbd::RBD::rename(pool_t src_pool, const char *srcname, const char *destna return r; } -int librbd::RBD::create_snap(pool_t pool, image_t image, const char *snap_name) +int librbd::RBD::create_snap(image_t image, const char *snap_name) { - PoolCtx *ctx = (PoolCtx *)pool; ImageCtx *ictx = (ImageCtx *)image; - int r = client->create_snap(ctx, ictx, snap_name); + int r = client->create_snap(ictx->pctx, ictx, snap_name); return r; } -int librbd::RBD::remove_snap(pool_t pool, image_t image, const char *snap_name) +int librbd::RBD::remove_snap(image_t image, const char *snap_name) { - PoolCtx *ctx = (PoolCtx *)pool; ImageCtx *ictx = (ImageCtx *)image; - int r = client->remove_snap(ctx, ictx, snap_name); + int r = client->remove_snap(ictx->pctx, ictx, snap_name); return r; } -int librbd::RBD::rollback_snap(pool_t pool, image_t image, const char *snap_name) +int librbd::RBD::rollback_snap(image_t image, const char *snap_name) { - PoolCtx *ctx = (PoolCtx *)pool; ImageCtx *ictx = (ImageCtx *)image; - int r = client->rollback_snap(ctx, ictx, snap_name); + int r = client->rollback_snap(ictx->pctx, ictx, snap_name); return r; } -int librbd::RBD::list_snaps(pool_t pool, image_t image, std::vector& snaps) +int librbd::RBD::list_snaps(image_t image, std::vector& snaps) { - PoolCtx *ctx = (PoolCtx *)pool; ImageCtx *ictx = (ImageCtx *)image; - int r = client->list_snaps(ctx, ictx, snaps); + int r = client->list_snaps(ictx->pctx, ictx, snaps); return r; } -int librbd::RBD::set_snap(pool_t pool, image_t image, const char *snap_name) +int librbd::RBD::set_snap(image_t image, const char *snap_name) { - PoolCtx *ctx = (PoolCtx *)pool; ImageCtx *ictx = (ImageCtx *)image; - return client->set_snap(ctx, ictx, snap_name); + return client->set_snap(ictx->pctx, ictx, snap_name); } void librbd::RBD::get_rados_pools(pool_t pool, librados::pool_t *md_pool, librados::pool_t *data_pool) -- 2.47.3