diff options
author | karthik-us <ksubrahm@redhat.com> | 2017-03-09 18:08:28 +0530 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2017-04-20 20:38:54 -0400 |
commit | 799a2ff8299db6d6dc75f1533f4bd5a3bb72164d (patch) | |
tree | 7a35badad1ad8cd42e6a1d8cff61d7522ff7bf03 /xlators/cluster/afr/src/afr-self-heal.h | |
parent | 98dc1f08c114adea1f4133c12dff0d4c3d75b30d (diff) |
cluster/afr: GFID split brain resolution with favorite-child-policy
Problem:
Currently the automatic split brain resolution with favorite child policy
is not resolving the GFID split brains.
Fix:
When there is a GFID split brain and the favorite child policy is set to
size/mtime/ctime/majority, based on the policy decide on the source and
sinks. Delete the entry from the sinks and recreate it from the source.
Mark the appropriate pending attributes and resolve the GFID split brain.
When the heal takes place it will complete the pending heals and reset
the attributes.
Change-Id: Ie30e5373f94ca6f276745d9c3ad662b8acca6946
BUG: 1430719
Signed-off-by: karthik-us <ksubrahm@redhat.com>
Reviewed-on: https://review.gluster.org/16878
Smoke: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Tested-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Ravishankar N <ravishankar@redhat.com>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Diffstat (limited to 'xlators/cluster/afr/src/afr-self-heal.h')
-rw-r--r-- | xlators/cluster/afr/src/afr-self-heal.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr-self-heal.h b/xlators/cluster/afr/src/afr-self-heal.h index 735e520070e..2e22ac2d7a1 100644 --- a/xlators/cluster/afr/src/afr-self-heal.h +++ b/xlators/cluster/afr/src/afr-self-heal.h @@ -319,4 +319,15 @@ afr_choose_source_by_policy (afr_private_t *priv, unsigned char *sources, int afr_selfheal_metadata_by_stbuf (xlator_t *this, struct iatt *stbuf); + +int +afr_sh_fav_by_size (xlator_t *this, struct afr_reply *replies, + inode_t *inode); +int +afr_sh_fav_by_mtime (xlator_t *this, struct afr_reply *replies, + inode_t *inode); +int +afr_sh_fav_by_ctime (xlator_t *this, struct afr_reply *replies, + inode_t *inode); + #endif /* !_AFR_SELFHEAL_H */ |