From c4d8e65d384b47a15fdf649c76e02c4fd8d97d61 Mon Sep 17 00:00:00 2001 From: Haomai Wang Date: Mon, 30 Mar 2015 18:42:36 +0800 Subject: [PATCH] Librbd: Add existing rbd configs to aware table Signed-off-by: Haomai Wang --- src/librbd/ImageCtx.cc | 37 ++++++++++++++++++++++++------------- src/librbd/ImageCtx.h | 2 ++ 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/src/librbd/ImageCtx.cc b/src/librbd/ImageCtx.cc index f884bd4225182..a0f4964a1b3d0 100644 --- a/src/librbd/ImageCtx.cc +++ b/src/librbd/ImageCtx.cc @@ -33,6 +33,29 @@ using librados::IoCtx; namespace librbd { const string ImageCtx::METADATA_CONF_PREFIX = "conf_"; + const char *aware_confs[] = { + "rbd_cache", + "rbd_cache_writethrough_until_flush", + "rbd_cache_size", + "rbd_cache_max_dirty", + "rbd_cache_target_dirty", + "rbd_cache_max_dirty_age", + "rbd_cache_max_dirty_object", + "rbd_cache_block_writes_upfront", + "rbd_concurrent_management_ops", + "rbd_balance_snap_reads", + "rbd_localize_snap_reads", + "rbd_balance_parent_reads", + "rbd_localize_parent_reads", + "rbd_readahead_trigger_requests", + "rbd_readahead_max_bytes", + "rbd_readahead_disable_after_bytes", + "rbd_clone_copy_on_read", + "rbd_blacklist_on_break_lock", + "rbd_blacklist_expire_seconds", + "rbd_request_timed_out_seconds", + }; + const size_t aware_confs_len = 20; ImageCtx::ImageCtx(const string &image_name, const string &image_id, const char *snap, IoCtx& p, bool ro) @@ -828,18 +851,6 @@ namespace librbd { void ImageCtx::aware_metadata_confs() { ldout(cct, 20) << __func__ << dendl; - static const char *aware_confs[] = { - "rbd_cache", - "rbd_cache_writethrough_until_flush", - "rbd_cache_size", - "rbd_cache_max_dirty", - "rbd_cache_target_dirty", - "rbd_cache_max_dirty_age", - "rbd_cache_max_dirty_object", - "rbd_cache_block_writes_upfront", - "rbd_concurrent_management_ops", - "rbd_balance_snap_reads" - }; static uint64_t max_conf_items = 128; string start = METADATA_CONF_PREFIX; @@ -855,7 +866,7 @@ namespace librbd { if (pairs.empty()) break; - is_continue = _aware_metadata_confs(METADATA_CONF_PREFIX, aware_confs, sizeof(aware_confs) / sizeof(char*), + is_continue = _aware_metadata_confs(METADATA_CONF_PREFIX, aware_confs, aware_confs_len, pairs, &res); for (map::iterator it = res.begin(); it != res.end(); ++it) { j = cct->_conf->set_val(it->first.c_str(), it->second.c_str()); diff --git a/src/librbd/ImageCtx.h b/src/librbd/ImageCtx.h index 45ab38b792296..8acba5185cd9f 100644 --- a/src/librbd/ImageCtx.h +++ b/src/librbd/ImageCtx.h @@ -210,6 +210,8 @@ namespace librbd { void aware_metadata_confs(); static bool _aware_metadata_confs(const string &prefix, const char **configs, size_t len, map &pairs, map *res); + static const char *aware_confs[]; + static const size_t aware_confs_len; }; } -- 2.39.5