diff options
author | Jeff Darcy <jdarcy@redhat.com> | 2011-09-20 09:49:57 -0400 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2011-11-20 07:34:31 -0800 |
commit | 76d5e5d5b51eb2ffe5a0608bf8869650bb76585f (patch) | |
tree | d349474b5f4eebe00973c05df29b9ebf5715d889 /xlators/cluster/afr/src/afr-inode-write.c | |
parent | e6a3902410aaa8756e9c07302d88399fb99641c7 (diff) |
Add quorum checks to avoid split-brain.
Change-Id: I2f123ef93989862aa796903a45682981d5d7fc3c
BUG: 3533
Reviewed-on: http://review.gluster.com/473
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Diffstat (limited to 'xlators/cluster/afr/src/afr-inode-write.c')
-rw-r--r-- | xlators/cluster/afr/src/afr-inode-write.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr-inode-write.c b/xlators/cluster/afr/src/afr-inode-write.c index 3f78c7b3658..4135ba947d2 100644 --- a/xlators/cluster/afr/src/afr-inode-write.c +++ b/xlators/cluster/afr/src/afr-inode-write.c @@ -449,6 +449,8 @@ afr_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, priv = this->private; + QUORUM_CHECK(writev,out); + ALLOC_OR_GOTO (local, afr_local_t, out); ret = AFR_LOCAL_INIT (local, priv); @@ -647,6 +649,8 @@ afr_truncate (call_frame_t *frame, xlator_t *this, priv = this->private; + QUORUM_CHECK(truncate,out); + transaction_frame = copy_frame (frame); if (!transaction_frame) { goto out; @@ -896,6 +900,8 @@ afr_ftruncate (call_frame_t *frame, xlator_t *this, priv = this->private; + QUORUM_CHECK(ftruncate,out); + ALLOC_OR_GOTO (local, afr_local_t, out); ret = AFR_LOCAL_INIT (local, priv); @@ -1093,6 +1099,8 @@ afr_setattr (call_frame_t *frame, xlator_t *this, priv = this->private; + QUORUM_CHECK(setattr,out); + transaction_frame = copy_frame (frame); if (!transaction_frame) { goto out; @@ -1298,6 +1306,8 @@ afr_fsetattr (call_frame_t *frame, xlator_t *this, priv = this->private; + QUORUM_CHECK(fsetattr,out); + transaction_frame = copy_frame (frame); if (!transaction_frame) { op_errno = ENOMEM; @@ -1487,6 +1497,8 @@ afr_setxattr (call_frame_t *frame, xlator_t *this, priv = this->private; + QUORUM_CHECK(setxattr,out); + ALLOC_OR_GOTO (local, afr_local_t, out); ret = AFR_LOCAL_INIT (local, priv); @@ -1671,6 +1683,8 @@ afr_removexattr (call_frame_t *frame, xlator_t *this, priv = this->private; + QUORUM_CHECK(removexattr,out); + transaction_frame = copy_frame (frame); if (!transaction_frame) { goto out; |