path: root/xlators/cluster/ec/src/ec-helpers.h
diff options
authorAshish Pandey <>2015-04-21 17:22:40 +0530
committerPranith Kumar Karampuri <>2015-05-06 14:02:53 -0700
commit50063ea7f4182ed30b86f38a716d03464e07b8c6 (patch)
tree8d6c8bdd3112781062206a5a0513df4a0fff1f18 /xlators/cluster/ec/src/ec-helpers.h
parentb054985d2f7db9ab72759c988db11feb855a1b5e (diff)
cluster/ec: add separate versions for data/entry, metadata
Adding 64 bits in "version" key of extended attributes. First 64 bits (Left) represents Data version. Last 64 bits (right) represents Meta Data version. Note: 3.7 and 3.6 version ec can't co-exist with this change because xattrop in 3.6 will fail with ERANGE as the buffer passed to it will be '8' bytes where as the value will be 16 bytes in 3.7. Where as 3.7 version clients can work with old version files. For upgrades we need to tell users to complete heals and then upgrade BUG: 1215265 Change-Id: Ib85114680cb7e75b8371c984d9f7b6401c1ffb93 Signed-off-by: Ashish Pandey <> Reviewed-on: Tested-by: Gluster Build System <> Tested-by: NetBSD Build System Reviewed-by: Pranith Kumar Karampuri <>
Diffstat (limited to 'xlators/cluster/ec/src/ec-helpers.h')
1 files changed, 4 insertions, 0 deletions
diff --git a/xlators/cluster/ec/src/ec-helpers.h b/xlators/cluster/ec/src/ec-helpers.h
index 11d2707b3c0..df4495138fe 100644
--- a/xlators/cluster/ec/src/ec-helpers.h
+++ b/xlators/cluster/ec/src/ec-helpers.h
@@ -22,6 +22,10 @@ int32_t ec_bits_consume(uint64_t * n);
size_t ec_iov_copy_to(void * dst, struct iovec * vector, int32_t count,
off_t offset, size_t size);
+int32_t ec_dict_set_array(dict_t *dict, char *key,
+ uint64_t *value, int32_t size);
+int32_t ec_dict_del_array(dict_t *dict, char *key,
+ uint64_t *value, int32_t size);
int32_t ec_dict_set_number(dict_t * dict, char * key, uint64_t value);
int32_t ec_dict_del_number(dict_t * dict, char * key, uint64_t * value);
int32_t ec_dict_set_config(dict_t * dict, char * key, ec_config_t * config);