From 3994afd6140c828edceca271974f5a90c4c70fad Mon Sep 17 00:00:00 2001 From: Pranith Kumar K Date: Thu, 23 Apr 2015 08:30:11 +0530 Subject: cluster/ec: Perform inode-write on healing subvols Backport of http://review.gluster.org/10372 If the version numbers do not match, then writes are performed only on at least N-R bricks which have same version. But if we want to do healing of files which are constantly modified we need to allow writes on subvols that are undergoing heal. Data healing will mark 62nd bit while the heal is going on. When the data transaction sees that this bit is set it needs to perform the fop on that subvol irrespective of whether the versions match or do not match. Fop is considered successful only if N-R non-healing bricks succeed. BUG: 1216303 Change-Id: I79aaf1ac86357c51547cdaaa56cf7338004cc512 Signed-off-by: Pranith Kumar K Reviewed-on: http://review.gluster.org/10440 Tested-by: Gluster Build System Tested-by: NetBSD Build System --- xlators/cluster/ec/src/ec-data.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'xlators/cluster/ec/src/ec-data.h') diff --git a/xlators/cluster/ec/src/ec-data.h b/xlators/cluster/ec/src/ec-data.h index ac59a6b2e14..80936aeaada 100644 --- a/xlators/cluster/ec/src/ec-data.h +++ b/xlators/cluster/ec/src/ec-data.h @@ -192,6 +192,9 @@ struct _ec_fop_data uint32_t flags; uint32_t first; uintptr_t mask; + uintptr_t healing; /*Dispatch is done but call is successful only + if fop->minimum number of subvolumes succeed + which are not healing*/ uintptr_t remaining; uintptr_t good; uintptr_t bad; -- cgit