diff options
| author | Anand Avati <avati@redhat.com> | 2013-08-07 04:16:52 -0700 | 
|---|---|---|
| committer | Anand Avati <avati@redhat.com> | 2013-08-14 09:30:43 -0700 | 
| commit | 1d1daa234eac97554103da16a7d6090bc25e5294 (patch) | |
| tree | e2e32bcb385ac38f3fa3a8aa5d73ca162c41f18f /xlators/cluster/afr/src/afr-inode-write.c | |
| parent | 1e49b3ac9b1019c742236be8db0ca8ec00750ae7 (diff) | |
cluster/afr: Add largest file is source policy
For Write Once Read Many times type of work-load choosing largest
file to be the source will always resolve fool-fool
scenarios correctly. In other cases we fsync() the files and
will have a reliable 'wise man'.
Change-Id: Ic4dbea8d06db6d578fbcb866fb65ee2d066ac7ba
BUG: 958118
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/5519
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Diffstat (limited to 'xlators/cluster/afr/src/afr-inode-write.c')
| -rw-r--r-- | xlators/cluster/afr/src/afr-inode-write.c | 22 | 
1 files changed, 0 insertions, 22 deletions
diff --git a/xlators/cluster/afr/src/afr-inode-write.c b/xlators/cluster/afr/src/afr-inode-write.c index a7441676881..7f7d9b4f8df 100644 --- a/xlators/cluster/afr/src/afr-inode-write.c +++ b/xlators/cluster/afr/src/afr-inode-write.c @@ -578,14 +578,11 @@ afr_truncate_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                         struct iatt *postbuf, dict_t *xdata)  {          afr_local_t *   local = NULL; -        afr_private_t * priv  = NULL;          int child_index = (long) cookie;          int read_child  = 0;          int call_count  = -1; -        int need_unwind = 0;          local = frame->local; -        priv  = this->private;          read_child = afr_inode_get_read_ctx (this, local->loc.inode, NULL); @@ -611,19 +608,11 @@ afr_truncate_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                          }                          local->success_count++; - -                        if ((local->success_count >= priv->wait_count) -                            && local->read_child_returned) { -                                need_unwind = 1; -                        }                  }                  local->op_errno = op_errno;          }          UNLOCK (&frame->lock); -        if (need_unwind) -                local->transaction.unwind (frame, this); -          call_count = afr_frame_return (frame);          if (call_count == 0) { @@ -788,14 +777,11 @@ afr_ftruncate_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                          struct iatt *postbuf, dict_t *xdata)  {          afr_local_t *   local = NULL; -        afr_private_t * priv  = NULL;          int child_index = (long) cookie;          int call_count  = -1; -        int need_unwind = 0;          int read_child  = 0;          local = frame->local; -        priv  = this->private;          read_child = afr_inode_get_read_ctx (this, local->fd->inode, NULL); @@ -821,19 +807,11 @@ afr_ftruncate_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                          }                          local->success_count++; - -                        if ((local->success_count >= priv->wait_count) -                            && local->read_child_returned) { -                                need_unwind = 1; -                        }                  }                  local->op_errno = op_errno;          }          UNLOCK (&frame->lock); -        if (need_unwind) -                local->transaction.unwind (frame, this); -          call_count = afr_frame_return (frame);          if (call_count == 0) {  | 
