diff options
| -rw-r--r-- | libglusterfs/src/common-utils.h | 1 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr-common.c | 4 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr-self-heal-common.c | 8 | ||||
| -rw-r--r-- | xlators/features/changelog/src/changelog-helpers.h | 13 | 
4 files changed, 15 insertions, 11 deletions
diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h index 1ddb46c6758..98f30fc47b0 100644 --- a/libglusterfs/src/common-utils.h +++ b/libglusterfs/src/common-utils.h @@ -114,6 +114,7 @@ enum _gf_client_pid          GF_CLIENT_PID_DEFRAG            = -3,          GF_CLIENT_PID_NO_ROOT_SQUASH    = -4,          GF_CLIENT_PID_QUOTA_MOUNT       = -5, +        GF_CLIENT_PID_AFR_SELF_HEALD    = -6,  };  typedef enum _gf_boolean gf_boolean_t; diff --git a/xlators/cluster/afr/src/afr-common.c b/xlators/cluster/afr/src/afr-common.c index 13dd81e25fe..8fc202512f1 100644 --- a/xlators/cluster/afr/src/afr-common.c +++ b/xlators/cluster/afr/src/afr-common.c @@ -514,7 +514,7 @@ afr_inode_refresh_done (call_frame_t *frame, xlator_t *this)  	if (ret && afr_selfheal_enabled (this)) {  		heal = copy_frame (frame);  		if (heal) -			heal->root->pid = -1; +			heal->root->pid = GF_CLIENT_PID_AFR_SELF_HEALD;  		ret = synctask_new (this->ctx->env, afr_refresh_selfheal_wrap,  				    afr_refresh_selfheal_done, heal, frame);  		if (ret) @@ -1497,7 +1497,7 @@ afr_lookup_entry_heal (call_frame_t *frame, xlator_t *this)  	if (need_heal) {  		heal = copy_frame (frame);  		if (heal) -			heal->root->pid = -1; +			heal->root->pid = GF_CLIENT_PID_AFR_SELF_HEALD;  		ret = synctask_new (this->ctx->env, afr_lookup_selfheal_wrap,  				    afr_refresh_selfheal_done, heal, frame);  		if (ret) diff --git a/xlators/cluster/afr/src/afr-self-heal-common.c b/xlators/cluster/afr/src/afr-self-heal-common.c index 56691e27752..1d0831f0752 100644 --- a/xlators/cluster/afr/src/afr-self-heal-common.c +++ b/xlators/cluster/afr/src/afr-self-heal-common.c @@ -947,10 +947,10 @@ afr_inode_find (xlator_t *this, uuid_t gfid)  call_frame_t *  afr_frame_create (xlator_t *this)  { -	call_frame_t *frame = NULL; -	afr_local_t *local = NULL; -	int op_errno = 0; -	pid_t pid = -1; +	call_frame_t *frame    = NULL; +	afr_local_t  *local    = NULL; +	int           op_errno = 0; +	pid_t         pid      = GF_CLIENT_PID_AFR_SELF_HEALD;  	frame = create_frame (this, this->ctx->pool);  	if (!frame) diff --git a/xlators/features/changelog/src/changelog-helpers.h b/xlators/features/changelog/src/changelog-helpers.h index d4af1ff3445..9bd4a3ff37c 100644 --- a/xlators/features/changelog/src/changelog-helpers.h +++ b/xlators/features/changelog/src/changelog-helpers.h @@ -539,11 +539,14 @@ int __chlog_barrier_enable (xlator_t *this, changelog_priv_t *priv);                          goto label;                             \          } while (0) -/* ignore internal fops */ -#define CHANGELOG_IF_INTERNAL_FOP_THEN_GOTO(frame, dict, label) do {     \ -                if ((frame->root->pid > 0) &&                            \ -                    dict && dict_get (dict, GLUSTERFS_INTERNAL_FOP_KEY)) \ -                        goto label;                                      \ +/** + * ignore internal fops for all clients except AFR self-heal daemon + */ +#define CHANGELOG_IF_INTERNAL_FOP_THEN_GOTO(frame, dict, label) do {    \ +                if ((frame->root->pid != GF_CLIENT_PID_AFR_SELF_HEALD)  \ +                    && dict                                             \ +                    && dict_get (dict, GLUSTERFS_INTERNAL_FOP_KEY))     \ +                        goto label;                                     \          } while (0)  #define CHANGELOG_COND_GOTO(priv, cond, label) do {                    \  | 
