summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/afr/src/afr.h
diff options
context:
space:
mode:
authorAshish Pandey <aspandey@redhat.com>2018-12-21 14:31:15 +0530
committerAmar Tumballi <amarts@redhat.com>2019-02-01 05:44:36 +0000
commit6b98735956c599ea621fa560b201fb7de6c36cac (patch)
tree0e835797f6688152fb8089118958307773f1d80f /xlators/cluster/afr/src/afr.h
parent7eda6fe62d4e47937afc2ba71b4fd858399bca05 (diff)
cluster/thin-arbiter: Consider thin-arbiter before marking new entry changelog
If a fop to create an entry fails on one of the data brick, we mark the pending changelog on the entry on brick for which it was successful. This is done as part of post op phase to make sure that entry gets healed even if it gets renamed to some other path where its parent was not marked as bad. As it happens as part of post op, we should consider thin-arbiter to check if the brick, which was successful, is the good brick or not. This will avoide split brain and other issues. Change-Id: I12686675be98f02f70a5186b3ed748c541514d53 updates: bz#1662264 Signed-off-by: Ashish Pandey <aspandey@redhat.com>
Diffstat (limited to 'xlators/cluster/afr/src/afr.h')
-rw-r--r--xlators/cluster/afr/src/afr.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h
index cdcc6027fdb..2cc3797675e 100644
--- a/xlators/cluster/afr/src/afr.h
+++ b/xlators/cluster/afr/src/afr.h
@@ -886,6 +886,7 @@ typedef struct _afr_local {
struct list_head ta_onwireq;
afr_ta_fop_state_t fop_state;
int ta_failed_subvol;
+ gf_boolean_t is_new_entry;
} afr_local_t;
typedef struct afr_spbc_timeout {
@@ -1327,4 +1328,8 @@ afr_ta_lock_release_synctask(xlator_t *this);
gf_boolean_t
afr_lookup_has_quorum(call_frame_t *frame, xlator_t *this,
unsigned char *subvols);
+
+void
+afr_mark_new_entry_changelog(call_frame_t *frame, xlator_t *this);
+
#endif /* __AFR_H__ */