diff options
author | Xavier Hernandez <jahernan@redhat.com> | 2017-12-13 17:27:42 +0100 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2017-12-22 16:19:53 +0000 |
commit | 41120aa8bab4ca4496bb37b8986434be404ae255 (patch) | |
tree | bf9dc2dc2ad7b426664a78676a99ddcad16d91f7 /xlators/cluster/ec/src/ec.h | |
parent | 3fd961d08588bd1ec31f8cfc72201dfa1a4e85d6 (diff) |
cluster/ec: Fix possible shift overflow
A coverity scan has revelaed a potential shift overflow while scanning
the bitmap of available subvolumes. The actual overflow cannot happen,
but I've changed to test used to control the limit to make it explicit.
Change-Id: Ieb55f010bbca68a1d86a93e47822f7c709a26e83
BUG: 789278
Signed-off-by: Xavier Hernandez <jahernan@redhat.com>
Diffstat (limited to 'xlators/cluster/ec/src/ec.h')
-rw-r--r-- | xlators/cluster/ec/src/ec.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/xlators/cluster/ec/src/ec.h b/xlators/cluster/ec/src/ec.h index b729fffc274..e2ec9cf04f5 100644 --- a/xlators/cluster/ec/src/ec.h +++ b/xlators/cluster/ec/src/ec.h @@ -11,6 +11,8 @@ #ifndef __EC_H__ #define __EC_H__ +#include "ec-method.h" + #define EC_XATTR_PREFIX "trusted.ec." #define EC_XATTR_CONFIG EC_XATTR_PREFIX"config" #define EC_XATTR_SIZE EC_XATTR_PREFIX"size" @@ -21,4 +23,11 @@ #define EC_VERSION_SIZE 2 #define EC_SHD_INODE_LRU_LIMIT 10 +#define EC_MAX_FRAGMENTS EC_METHOD_MAX_FRAGMENTS +/* The maximum number of nodes is derived from the maximum allowed fragments + * using the rule that redundancy cannot be equal or greater than the number + * of fragments. + */ +#define EC_MAX_NODES min(EC_MAX_FRAGMENTS * 2 - 1, EC_METHOD_MAX_NODES) + #endif /* __EC_H__ */ |