diff options
author | Ravishankar N <ravishankar@redhat.com> | 2015-09-14 15:43:31 +0530 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2015-09-15 19:22:36 -0700 |
commit | 22882a9b810c4d5c7a7be0f1fac7069422d08b57 (patch) | |
tree | 2f57ebca0acb68a05678510c974cd96efb0d33d1 /xlators/cluster/afr/src/afr.h | |
parent | 63e3806ba3c4d5f196ad2254f63d85b79602705a (diff) |
afr: perform replace-brick in a synctask
Problem:
replace-brick setxattr is not performed inside a synctask. This can lead
to hangs if the setxattr is executed by epoll thread, as the epoll
thread will be waiting for replies to come where as epoll thread is the
thread that needs to epoll_ctl for reading from socket and listen.
Fix:
Move replace-brick to synctask to prevent epoll thread hang.
This patch is in line with the fix performed in
http://review.gluster.org/#/c/12163/
Change-Id: I6a71038bb7819f9e98f7098b18a6cee34805868f
BUG: 1262345
Signed-off-by: Ravishankar N <ravishankar@redhat.com>
Reviewed-on: http://review.gluster.org/12169
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Diffstat (limited to 'xlators/cluster/afr/src/afr.h')
-rw-r--r-- | xlators/cluster/afr/src/afr.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h index bae20e5bf79..85a8ec676cb 100644 --- a/xlators/cluster/afr/src/afr.h +++ b/xlators/cluster/afr/src/afr.h @@ -755,6 +755,12 @@ typedef struct afr_spb_status { loc_t *loc; } afr_spb_status_t; +typedef struct afr_replace_brick_args { + call_frame_t *frame; + loc_t loc; + int rb_index; +} afr_replace_brick_args_t; + typedef struct afr_read_subvol_args { ia_type_t ia_type; uuid_t gfid; |