diff options
author | Pranith Kumar K <pkarampu@redhat.com> | 2015-04-23 08:30:11 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2015-04-24 22:39:23 -0700 |
commit | 7efa7e2116856b4cf37797218612a41bdd237e77 (patch) | |
tree | 3e492c2516e3381f34c1cb7b52aa9300e079ca9a /xlators/cluster/ec/src/ec-data.h | |
parent | de9d06cd7cfca0b42beffe003e7c1e09d469ca7e (diff) |
cluster/ec: Perform inode-write on healing subvols
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.
Change-Id: I69a17582df397aaf6e8ca4b5e746c7ca802cbbde
BUG: 1215265
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/10372
Tested-by: NetBSD Build System
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators/cluster/ec/src/ec-data.h')
-rw-r--r-- | xlators/cluster/ec/src/ec-data.h | 3 |
1 files changed, 3 insertions, 0 deletions
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; |