From: Loic Dachary Date: Thu, 19 Sep 2013 07:19:51 +0000 (+0200) Subject: ErasureCode: plugin loading in progress flag X-Git-Tag: v0.71~99^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7324931d5ec8e57ff9d5ae4e5700a1a479f5a6bb;p=ceph.git ErasureCode: plugin loading in progress flag The bool loading data member of ErasureCodePluginRegistry is set to true when a plugin is being loaded, to provide an observable side effect for test purposes. Signed-off-by: Loic Dachary --- diff --git a/src/osd/ErasureCodePlugin.cc b/src/osd/ErasureCodePlugin.cc index 10b65b2604b4..d8b9ae0fbbd8 100644 --- a/src/osd/ErasureCodePlugin.cc +++ b/src/osd/ErasureCodePlugin.cc @@ -36,7 +36,8 @@ static ostream& _prefix(std::ostream* _dout) ErasureCodePluginRegistry ErasureCodePluginRegistry::singleton; ErasureCodePluginRegistry::ErasureCodePluginRegistry() : - lock("ErasureCodePluginRegistry::lock") + lock("ErasureCodePluginRegistry::lock"), + loading(false) { } @@ -76,7 +77,9 @@ int ErasureCodePluginRegistry::factory(const std::string &plugin_name, int r = 0; ErasureCodePlugin *plugin = get(plugin_name); if (plugin == 0) { + loading = true; r = load(plugin_name, parameters, &plugin); + loading = false; if (r != 0) return r; } diff --git a/src/osd/ErasureCodePlugin.h b/src/osd/ErasureCodePlugin.h index f1c1ccb31b32..a2feb71695ab 100644 --- a/src/osd/ErasureCodePlugin.h +++ b/src/osd/ErasureCodePlugin.h @@ -41,6 +41,7 @@ namespace ceph { class ErasureCodePluginRegistry { public: Mutex lock; + bool loading; std::map plugins; static ErasureCodePluginRegistry singleton;