From 9d8f5a34c1ff4ae512f80fe9651508ae201c273e Mon Sep 17 00:00:00 2001 From: Ravishankar N Date: Thu, 20 Sep 2018 10:14:26 +0530 Subject: afr: fix incorrect reporting of directory split-brain Problem: When a directory has dirty xattrs due to failed post-ops or when replace/reset brick is performed, AFR does a conservative merge as expected, but heal-info reports it as split-brain because there are no clear sources. Fix: Modify pending flag to contain information about pending heals and split-brains. For directories, if spit-brain flag is not set,just show them as needing heal and not being in split-brain. Fixes: bz#1626994 Change-Id: I09ef821f6887c87d315ae99e6b1de05103cd9383 Signed-off-by: Ravishankar N --- xlators/cluster/afr/src/afr.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'xlators/cluster/afr/src/afr.h') diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h index 6252f91736a..cc4bceef521 100644 --- a/xlators/cluster/afr/src/afr.h +++ b/xlators/cluster/afr/src/afr.h @@ -39,6 +39,10 @@ #define AFR_TA_DOM_MODIFY "afr.ta.dom-modify" #define AFR_HALO_MAX_LATENCY 99999 + +#define PFLAG_PENDING (1 << 0) +#define PFLAG_SBRAIN (1 << 1) + typedef int (*afr_lock_cbk_t)(call_frame_t *frame, xlator_t *this); typedef int (*afr_read_txn_wind_t)(call_frame_t *frame, xlator_t *this, -- cgit