From: Loic Dachary Date: Sun, 17 May 2015 22:16:04 +0000 (+0200) Subject: erasure-code: implement ErasureCode::sanity_check_k X-Git-Tag: v9.0.2~32^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=37f73607601edf87ae68da969e14100f718e0907;p=ceph.git erasure-code: implement ErasureCode::sanity_check_k Implement the ErasureCode::sanity_check_k helper for plugins that need to verify k >= 2. http://tracker.ceph.com/issues/10358 Fixes: #10358 Signed-off-by: Loic Dachary --- diff --git a/src/erasure-code/ErasureCode.cc b/src/erasure-code/ErasureCode.cc index 570677d19cc3..e7a10aec4675 100644 --- a/src/erasure-code/ErasureCode.cc +++ b/src/erasure-code/ErasureCode.cc @@ -24,6 +24,16 @@ const unsigned ErasureCode::SIMD_ALIGN = 32; +int ErasureCode::sanity_check_k(int k, ostream *ss) +{ + if (k < 2) { + *ss << "k=" << k << " must be >= 2" << std::endl; + return -EINVAL; + } else { + return 0; + } +} + int ErasureCode::chunk_index(unsigned int i) const { return chunk_mapping.size() > i ? chunk_mapping[i] : i; diff --git a/src/erasure-code/ErasureCode.h b/src/erasure-code/ErasureCode.h index ee41935b55fb..294f538e5de4 100644 --- a/src/erasure-code/ErasureCode.h +++ b/src/erasure-code/ErasureCode.h @@ -46,6 +46,8 @@ namespace ceph { return _profile; } + int sanity_check_k(int k, ostream *ss); + virtual unsigned int get_coding_chunk_count() const { return get_chunk_count() - get_data_chunk_count(); }