diff options
author | Pranith Kumar K <pkarampu@redhat.com> | 2015-01-08 15:39:40 +0530 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2015-01-28 19:49:53 -0800 |
commit | a48b18d6f661f863371e625084a88a01aaf989f0 (patch) | |
tree | a45a7bad629f4c2b37670db79ab03e80ab1b0c30 /xlators/cluster/ec/src/ec.h | |
parent | b17122ffc75c65bda2cf3b3d99832bbf2718e8d3 (diff) |
cluster/ec: Handle CHILD UP/DOWN in all cases
Problem:
When all the bricks are down at the time of mounting the volume, then mount
command hangs.
Fix:
1. Ignore all CHILD_CONNECTING events comming from subvolumes.
2. On timer expiration (without enough up or down childs) send
CHILD_DOWN.
3. Once enough up or down subvolumes are detected, send the appropriate event.
When rest of the subvols go up/down without changing the overall
ec-up/ec-down send CHILD_MODIFIED to parent subvols.
Change-Id: Ie0194dbadef2dce36ab5eb7beece84a6bf3c631c
BUG: 1179180
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/9396
Reviewed-by: Xavier Hernandez <xhernandez@datalab.es>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Diffstat (limited to 'xlators/cluster/ec/src/ec.h')
-rw-r--r-- | xlators/cluster/ec/src/ec.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/xlators/cluster/ec/src/ec.h b/xlators/cluster/ec/src/ec.h index cb3832ae097..e5b54b02966 100644 --- a/xlators/cluster/ec/src/ec.h +++ b/xlators/cluster/ec/src/ec.h @@ -36,6 +36,8 @@ struct _ec uint32_t idx; uint32_t xl_up_count; uintptr_t xl_up; + uint32_t xl_notify_count; + uintptr_t xl_notify; uintptr_t node_mask; xlator_t ** xl_list; gf_lock_t lock; |