diff options
author | Anuradha Talur <atalur@redhat.com> | 2015-09-11 18:43:36 +0530 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2015-09-14 02:56:53 -0700 |
commit | fa08597a004b591afbeb478d0a736ec09066f648 (patch) | |
tree | 855b85e44331fc9585fb19e1291faa836248dc4c /xlators/cluster/afr/src/afr.h | |
parent | 2e041639d8e49e2b768dd43c6f702106250e4da9 (diff) |
afr : get split-brain-status in a synctask
On executing `getfattr -n replica.split-brain-status <file>` on mount,
there is a possibility that the mount hangs. To avoid this hang,
fetch the split-brain-status of a file in synctask.
Change-Id: I87b781419ffc63248f915325b845e3233143d385
BUG: 1262345
Signed-off-by: Anuradha Talur <atalur@redhat.com>
Reviewed-on: http://review.gluster.org/12163
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Ravishankar N <ravishankar@redhat.com>
Diffstat (limited to 'xlators/cluster/afr/src/afr.h')
-rw-r--r-- | xlators/cluster/afr/src/afr.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h index 3a4a8794698..bae20e5bf79 100644 --- a/xlators/cluster/afr/src/afr.h +++ b/xlators/cluster/afr/src/afr.h @@ -750,6 +750,11 @@ typedef struct afr_spbc_timeout { int spb_child_index; } afr_spbc_timeout_t; +typedef struct afr_spb_status { + call_frame_t *frame; + loc_t *loc; +} afr_spb_status_t; + typedef struct afr_read_subvol_args { ia_type_t ia_type; uuid_t gfid; @@ -1045,14 +1050,16 @@ gf_boolean_t afr_is_xattr_ignorable (char *key); int -afr_get_heal_info (call_frame_t *frame, xlator_t *this, loc_t *loc, - dict_t *xdata); +afr_get_heal_info (call_frame_t *frame, xlator_t *this, loc_t *loc); int afr_heal_splitbrain_file(call_frame_t *frame, xlator_t *this, loc_t *loc); int -afr_get_split_brain_status (call_frame_t *frame, xlator_t *this, loc_t *loc); +afr_get_split_brain_status (void *opaque); + +int +afr_get_split_brain_status_cbk (int ret, call_frame_t *frame, void *opaque); int afr_inode_split_brain_choice_set (inode_t *inode, xlator_t *this, |