diff options
| author | Pranith Kumar K <pranithk@gluster.com> | 2011-10-14 18:28:27 +0530 | 
|---|---|---|
| committer | Vijay Bellur <vijay@gluster.com> | 2011-10-14 06:04:54 -0700 | 
| commit | fed29e0ae382ef24f4d3dff3623daefc57dab6ce (patch) | |
| tree | 17fdeb160f819688720273ce0e2d7410b7ea8d61 | |
| parent | 3edfb0c492d73b349d83f904c42e6edfb9678965 (diff) | |
cluster/afr: Prevent truncation of mask uint64_t->gf_boolean_t
Change-Id: If67f726f21b713fa9312dc499a1aca4cb00f71de
BUG: 3682
Reviewed-on: http://review.gluster.com/589
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
| -rw-r--r-- | xlators/cluster/afr/src/afr-common.c | 12 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr.h | 2 | 
2 files changed, 9 insertions, 5 deletions
diff --git a/xlators/cluster/afr/src/afr-common.c b/xlators/cluster/afr/src/afr-common.c index 7c38d65ed3b..e6b0881fc9d 100644 --- a/xlators/cluster/afr/src/afr-common.c +++ b/xlators/cluster/afr/src/afr-common.c @@ -210,11 +210,15 @@ afr_inode_get_ctx (xlator_t *this, inode_t *inode, afr_inode_params_t *params)                                  fresh_children[i] = ctx->fresh_children[i];                          break;                  case AFR_INODE_GET_OPENDIR_DONE: -                        params->u.value = ctx->masks & -                                          AFR_ICTX_OPENDIR_DONE_MASK; +                        params->u.value = _gf_false; +                        if (ctx->masks & AFR_ICTX_OPENDIR_DONE_MASK) +                                params->u.value = _gf_true;                          break;                  case AFR_INODE_GET_SPLIT_BRAIN: -                        params->u.value = ctx->masks & AFR_ICTX_SPLIT_BRAIN_MASK; +                        params->u.value = _gf_false; +                        if (ctx->masks & AFR_ICTX_SPLIT_BRAIN_MASK) +                                params->u.value = _gf_true; +                        ;                          break;                  default:                          GF_ASSERT (0); @@ -225,7 +229,7 @@ unlock:          UNLOCK (&inode->lock);  } -uint64_t +gf_boolean_t  afr_is_split_brain (xlator_t *this, inode_t *inode)  {          afr_inode_params_t params = {0}; diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h index 7320c8d7cf3..1f6481e109c 100644 --- a/xlators/cluster/afr/src/afr.h +++ b/xlators/cluster/afr/src/afr.h @@ -852,7 +852,7 @@ afr_local_cleanup (afr_local_t *local, xlator_t *this);  int  afr_frame_return (call_frame_t *frame); -uint64_t +gf_boolean_t  afr_is_split_brain (xlator_t *this, inode_t *inode);  void  | 
