diff options
| author | Amar Tumballi <amar@gluster.com> | 2011-03-29 07:06:26 +0000 | 
|---|---|---|
| committer | Vijay Bellur <vijay@dev.gluster.com> | 2011-03-31 04:19:47 -0700 | 
| commit | 0cccbefebfd2e95dbbf7f078f5e45267c60d48ed (patch) | |
| tree | 57515dabd7ee22759967438f749ebb4ec9d0bf7a | |
| parent | f7fb326c250997f274e4e928faec9aeca4ce12c9 (diff) | |
cluster/afr: white-space cleanup - part 2
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Vijay Bellur <vijay@dev.gluster.com>
BUG: 2346 (Log message enhancements in GlusterFS - phase 1)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2346
| -rw-r--r-- | xlators/cluster/afr/src/afr-common.c | 100 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr-dir-write.c | 2029 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr-inode-write.c | 40 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr-lk-common.c | 372 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr-self-heal-common.c | 874 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr-self-heal-entry.c | 2677 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr-transaction.c | 422 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr.c | 1188 | 
8 files changed, 3850 insertions, 3852 deletions
diff --git a/xlators/cluster/afr/src/afr-common.c b/xlators/cluster/afr/src/afr-common.c index ffd2200066f..c432cc49b14 100644 --- a/xlators/cluster/afr/src/afr-common.c +++ b/xlators/cluster/afr/src/afr-common.c @@ -1,20 +1,20 @@  /* -   Copyright (c) 2007-2010 Gluster, Inc. <http://www.gluster.com> -   This file is part of GlusterFS. - -   GlusterFS is free software; you can redistribute it and/or modify -   it under the terms of the GNU Affero General Public License as published -   by the Free Software Foundation; either version 3 of the License, -   or (at your option) any later version. - -   GlusterFS is distributed in the hope that it will be useful, but -   WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -   Affero General Public License for more details. - -   You should have received a copy of the GNU Affero General Public License -   along with this program.  If not, see -   <http://www.gnu.org/licenses/>. +  Copyright (c) 2007-2010 Gluster, Inc. <http://www.gluster.com> +  This file is part of GlusterFS. + +  GlusterFS is free software; you can redistribute it and/or modify +  it under the terms of the GNU Affero General Public License as published +  by the Free Software Foundation; either version 3 of the License, +  or (at your option) any later version. + +  GlusterFS is distributed in the hope that it will be useful, but +  WITHOUT ANY WARRANTY; without even the implied warranty of +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +  Affero General Public License for more details. + +  You should have received a copy of the GNU Affero General Public License +  along with this program.  If not, see +  <http://www.gnu.org/licenses/>.  */  #include <libgen.h> @@ -585,7 +585,7 @@ afr_lookup_self_heal_check (xlator_t *this, afr_local_t *local,  {          if (FILETYPE_DIFFERS (buf, lookup_buf)) {                  /* mismatching filetypes with same name -                */ +                 */                  gf_log (this->name, GF_LOG_NORMAL,                          "filetype differs for %s ", local->loc.path); @@ -841,8 +841,8 @@ afr_fresh_lookup_cbk (call_frame_t *frame, void *cookie,                          if (child_index == local->read_child_index) {                                  /* -                                   lookup has succeeded on the read child. -                                   So use its inode number +                                  lookup has succeeded on the read child. +                                  So use its inode number                                  */                                  if (local->cont.lookup.xattr)                                          dict_unref (local->cont.lookup.xattr); @@ -899,13 +899,13 @@ afr_revalidate_lookup_cbk (call_frame_t *frame, void *cookie,                                  local->enoent_count++;                          if (__error_more_important (local->op_errno, op_errno)) -                            local->op_errno = op_errno; +                                local->op_errno = op_errno; -                            if (local->op_errno == ESTALE) { -                                    local->op_ret = -1; -                            } +                        if (local->op_errno == ESTALE) { +                                local->op_ret = -1; +                        } -                            goto unlock; +                        goto unlock;                  }                  afr_lookup_collect_xattr (local, this, child_index, xattr); @@ -958,8 +958,8 @@ afr_revalidate_lookup_cbk (call_frame_t *frame, void *cookie,                          if (child_index == local->read_child_index) {                                  /* -                                   lookup has succeeded on the read child. -                                   So use its inode number +                                  lookup has succeeded on the read child. +                                  So use its inode number                                  */                                  if (local->cont.lookup.xattr) @@ -1047,8 +1047,8 @@ afr_lookup (call_frame_t *frame, xlator_t *this,          local->child_up = memdup (priv->child_up, priv->child_count);          local->cont.lookup.xattrs = GF_CALLOC (priv->child_count, -                                    sizeof (*local->cont.lookup.xattr), -                                    gf_afr_mt_dict_t); +                                               sizeof (*local->cont.lookup.xattr), +                                               gf_afr_mt_dict_t);          local->call_count = afr_up_children_count (priv->child_count,                                                     local->child_up); @@ -1226,7 +1226,7 @@ afr_flush_unwind (call_frame_t *frame, xlator_t *this)  int  afr_flush_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                      int32_t op_ret, int32_t op_errno) +                    int32_t op_ret, int32_t op_errno)  {          afr_local_t *   local = NULL;          afr_private_t * priv  = NULL; @@ -2072,7 +2072,7 @@ out:  int32_t  afr_fentrylk_cbk (call_frame_t *frame, void *cookie, -                 xlator_t *this, int32_t op_ret, int32_t op_errno) +                  xlator_t *this, int32_t op_ret, int32_t op_errno)  {          afr_local_t *local = NULL; @@ -2310,8 +2310,8 @@ int32_t  afr_lk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,              int32_t op_ret, int32_t op_errno, struct gf_flock *lock)  { -	afr_local_t *local = NULL; -	afr_private_t *priv = NULL; +        afr_local_t *local = NULL; +        afr_private_t *priv = NULL;  /*        int            ret  = 0; */          int child_index = -1; @@ -2353,19 +2353,19 @@ afr_lk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  /* locking has succeeded on all nodes that are up */                  /* temporarily -                ret = afr_mark_locked_nodes (this, local->fd, -                                             local->cont.lk.locked_nodes); -                if (ret) -                        gf_log (this->name, GF_LOG_DEBUG, -                                "Could not save locked nodes info in fdctx"); +                   ret = afr_mark_locked_nodes (this, local->fd, +                   local->cont.lk.locked_nodes); +                   if (ret) +                   gf_log (this->name, GF_LOG_DEBUG, +                   "Could not save locked nodes info in fdctx"); -                ret = afr_save_locked_fd (this, local->fd); -                if (ret) -                        gf_log (this->name, GF_LOG_DEBUG, -                                "Could not save locked fd"); +                   ret = afr_save_locked_fd (this, local->fd); +                   if (ret) +                   gf_log (this->name, GF_LOG_DEBUG, +                   "Could not save locked fd");                  */ -		AFR_STACK_UNWIND (lk, frame, local->op_ret, local->op_errno, +                AFR_STACK_UNWIND (lk, frame, local->op_ret, local->op_errno,                                    &local->cont.lk.ret_flock);          } @@ -2398,8 +2398,8 @@ afr_lk (call_frame_t *frame, xlator_t *this,          frame->local  = local;          local->cont.lk.locked_nodes = GF_CALLOC (priv->child_count, -                                              sizeof (*local->cont.lk.locked_nodes), -                                              gf_afr_mt_char); +                                                 sizeof (*local->cont.lk.locked_nodes), +                                                 gf_afr_mt_char);          if (!local->cont.lk.locked_nodes) {                  gf_log (this->name, GF_LOG_ERROR, "Out of memory"); @@ -2448,7 +2448,7 @@ afr_priv_dump (xlator_t *this)                  gf_proc_dump_build_key(key, key_prefix, "child_up[%d]", i);                  gf_proc_dump_write(key, "%d", priv->child_up[i]);                  gf_proc_dump_build_key(key, key_prefix, -                                        "pending_key[%d]", i); +                                       "pending_key[%d]", i);                  gf_proc_dump_write(key, "%s", priv->pending_key[i]);          }          gf_proc_dump_build_key(key, key_prefix, "data_self_heal"); @@ -2526,7 +2526,7 @@ afr_notify (xlator_t *this, int32_t event,                  i = find_child_index (this, data);                  /* temporarily -                afr_attempt_lock_recovery (this, i); +                   afr_attempt_lock_recovery (this, i);                  */                  child_up[i] = 1; @@ -2538,8 +2538,8 @@ afr_notify (xlator_t *this, int32_t event,                  UNLOCK (&priv->lock);                  /* -                   if all the children were down, and one child came up, -                   send notify to parent +                  if all the children were down, and one child came up, +                  send notify to parent                  */                  for (i = 0; i < priv->child_count; i++) @@ -2570,8 +2570,8 @@ afr_notify (xlator_t *this, int32_t event,                  UNLOCK (&priv->lock);                  /* -                   if all children are down, and this was the last to go down, -                   send notify to parent +                  if all children are down, and this was the last to go down, +                  send notify to parent                  */                  for (i = 0; i < priv->child_count; i++) diff --git a/xlators/cluster/afr/src/afr-dir-write.c b/xlators/cluster/afr/src/afr-dir-write.c index af42e7e06a0..dceb059bb01 100644 --- a/xlators/cluster/afr/src/afr-dir-write.c +++ b/xlators/cluster/afr/src/afr-dir-write.c @@ -51,24 +51,24 @@  void  afr_build_parent_loc (loc_t *parent, loc_t *child)  { -	char *tmp = NULL; +        char *tmp = NULL; -	if (!child->parent) { -		loc_copy (parent, child); -		return; -	} +        if (!child->parent) { +                loc_copy (parent, child); +                return; +        } -	tmp = gf_strdup (child->path); -	parent->path   = gf_strdup (dirname (tmp)); -	GF_FREE (tmp); +        tmp = gf_strdup (child->path); +        parent->path   = gf_strdup (dirname (tmp)); +        GF_FREE (tmp);          parent->name   = strrchr (parent->path, '/'); -	if (parent->name) -		parent->name++; +        if (parent->name) +                parent->name++; -	parent->inode  = inode_ref (child->parent); -	parent->parent = inode_parent (parent->inode, 0, NULL); -	parent->ino    = parent->inode->ino; +        parent->inode  = inode_ref (child->parent); +        parent->parent = inode_parent (parent->inode, 0, NULL); +        parent->ino    = parent->inode->ino;  }  /* {{{ create */ @@ -76,22 +76,22 @@ afr_build_parent_loc (loc_t *parent, loc_t *child)  int  afr_create_unwind (call_frame_t *frame, xlator_t *this)  { -	call_frame_t *main_frame = NULL; -	afr_local_t  *local = NULL; +        call_frame_t *main_frame = NULL; +        afr_local_t  *local = NULL;          struct iatt  *unwind_buf = NULL; -	local = frame->local; +        local = frame->local; -	LOCK (&frame->lock); -	{ -		if (local->transaction.main_frame) { -			main_frame = local->transaction.main_frame; -		} -		local->transaction.main_frame = NULL; -	} -	UNLOCK (&frame->lock); +        LOCK (&frame->lock); +        { +                if (local->transaction.main_frame) { +                        main_frame = local->transaction.main_frame; +                } +                local->transaction.main_frame = NULL; +        } +        UNLOCK (&frame->lock); -	if (main_frame) { +        if (main_frame) {                  if (local->cont.create.read_child_buf.ia_ino) {                          unwind_buf = &local->cont.create.read_child_buf;                  } else { @@ -103,47 +103,47 @@ afr_create_unwind (call_frame_t *frame, xlator_t *this)                  local->cont.create.preparent.ia_ino  = local->cont.create.parent_ino;                  local->cont.create.postparent.ia_ino = local->cont.create.parent_ino; -		AFR_STACK_UNWIND (create, main_frame, +                AFR_STACK_UNWIND (create, main_frame,                                    local->op_ret, local->op_errno, -				  local->cont.create.fd, -				  local->cont.create.inode, -				  unwind_buf, &local->cont.create.preparent, +                                  local->cont.create.fd, +                                  local->cont.create.inode, +                                  unwind_buf, &local->cont.create.preparent,                                    &local->cont.create.postparent);          } -         -	return 0; + +        return 0;  }  int -afr_create_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  -		     int32_t op_ret, int32_t op_errno,  -		     fd_t *fd, inode_t *inode, struct iatt *buf, +afr_create_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                     int32_t op_ret, int32_t op_errno, +                     fd_t *fd, inode_t *inode, struct iatt *buf,                       struct iatt *preparent, struct iatt *postparent)  { -	afr_local_t *   local = NULL; -	afr_private_t * priv  = NULL; +        afr_local_t *   local = NULL; +        afr_private_t * priv  = NULL;          uint64_t      ctx;          afr_fd_ctx_t *fd_ctx;          int ret = 0; -	int call_count = -1; -	int child_index = -1; +        int call_count = -1; +        int child_index = -1; + +        local = frame->local; +        priv  = this->private; -	local = frame->local; -	priv  = this->private; +        child_index = (long) cookie; -	child_index = (long) cookie; +        LOCK (&frame->lock); +        { +                if (afr_fop_failed (op_ret, op_errno)) +                        afr_transaction_fop_failed (frame, this, child_index); -	LOCK (&frame->lock); -	{ -		if (afr_fop_failed (op_ret, op_errno)) -			afr_transaction_fop_failed (frame, this, child_index); -                 -		if (op_ret != -1) { -			local->op_ret = op_ret; +                if (op_ret != -1) { +                        local->op_ret = op_ret;                          ret = afr_fd_ctx_set (this, fd); @@ -172,7 +172,7 @@ afr_create_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                          fd_ctx->flags                  = local->cont.create.flags;                          if (local->success_count == 0) { -				local->cont.create.buf        = *buf; +                                local->cont.create.buf        = *buf;                                  local->cont.create.ino =                                          afr_itransform (buf->ia_ino, @@ -180,182 +180,182 @@ afr_create_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                                                          child_index);                                  if (priv->read_child >= 0) { -                                        afr_set_read_child (this, inode,  +                                        afr_set_read_child (this, inode,                                                              priv->read_child);                                  } else { -                                        afr_set_read_child (this, inode,  +                                        afr_set_read_child (this, inode,                                                              local->read_child_index);                                  } -			} -                         +                        } +                          if (child_index == local->first_up_child) {                                  local->cont.create.ino =                                          afr_itransform (buf->ia_ino,                                                          priv->child_count,                                                          local->first_up_child);                          } -                         +                          if (child_index == local->read_child_index) {                                  local->cont.create.read_child_buf = *buf;                                  local->cont.create.preparent      = *preparent;                                  local->cont.create.postparent     = *postparent;                          } -			local->cont.create.inode = inode; +                        local->cont.create.inode = inode; -			local->success_count++; -		} +                        local->success_count++; +                } -		local->op_errno = op_errno; -	} +                local->op_errno = op_errno; +        }  unlock: -	UNLOCK (&frame->lock); +        UNLOCK (&frame->lock); + +        call_count = afr_frame_return (frame); -	call_count = afr_frame_return (frame); +        if (call_count == 0) { +                local->transaction.unwind (frame, this); -	if (call_count == 0) { -		local->transaction.unwind (frame, this); +                local->transaction.resume (frame, this); +        } -		local->transaction.resume (frame, this); -	} -	 -	return 0; +        return 0;  }  int  afr_create_wind (call_frame_t *frame, xlator_t *this)  { -	afr_local_t *local = NULL; -	afr_private_t *priv = NULL; - -	int call_count = -1; -	int i = 0; - -	local = frame->local; -	priv = this->private; - -	call_count = afr_up_children_count (priv->child_count, local->child_up); - -	if (call_count == 0) { -		local->transaction.resume (frame, this); -		return 0; -	} - -	local->call_count = call_count; - -	for (i = 0; i < priv->child_count; i++) {				 -		if (local->child_up[i]) { -			STACK_WIND_COOKIE (frame, afr_create_wind_cbk, -					   (void *) (long) i, -					   priv->children[i],  -					   priv->children[i]->fops->create, -					   &local->loc,  -					   local->cont.create.flags,  -					   local->cont.create.mode,  -					   local->cont.create.fd, +        afr_local_t *local = NULL; +        afr_private_t *priv = NULL; + +        int call_count = -1; +        int i = 0; + +        local = frame->local; +        priv = this->private; + +        call_count = afr_up_children_count (priv->child_count, local->child_up); + +        if (call_count == 0) { +                local->transaction.resume (frame, this); +                return 0; +        } + +        local->call_count = call_count; + +        for (i = 0; i < priv->child_count; i++) { +                if (local->child_up[i]) { +                        STACK_WIND_COOKIE (frame, afr_create_wind_cbk, +                                           (void *) (long) i, +                                           priv->children[i], +                                           priv->children[i]->fops->create, +                                           &local->loc, +                                           local->cont.create.flags, +                                           local->cont.create.mode, +                                           local->cont.create.fd,                                             local->cont.create.params); -			if (!--call_count) -				break; -		} -	} -	 -	return 0; +                        if (!--call_count) +                                break; +                } +        } + +        return 0;  }  int  afr_create_done (call_frame_t *frame, xlator_t *this)  { -	afr_local_t * local = NULL; +        afr_local_t * local = NULL; -	local = frame->local; +        local = frame->local; -	local->transaction.unwind (frame, this); +        local->transaction.unwind (frame, this); -	AFR_STACK_DESTROY (frame); +        AFR_STACK_DESTROY (frame); -	return 0; +        return 0;  }  int  afr_create (call_frame_t *frame, xlator_t *this, -	    loc_t *loc, int32_t flags, mode_t mode, +            loc_t *loc, int32_t flags, mode_t mode,              fd_t *fd, dict_t *params)  { -	afr_private_t * priv  = NULL; -	afr_local_t   * local = NULL; -	call_frame_t  * transaction_frame = NULL; +        afr_private_t * priv  = NULL; +        afr_local_t   * local = NULL; +        call_frame_t  * transaction_frame = NULL; -	int ret = -1; +        int ret = -1; -	int op_ret   = -1; -	int op_errno = 0; +        int op_ret   = -1; +        int op_errno = 0; -	VALIDATE_OR_GOTO (frame, out); -	VALIDATE_OR_GOTO (this, out); -	VALIDATE_OR_GOTO (this->private, out); +        VALIDATE_OR_GOTO (frame, out); +        VALIDATE_OR_GOTO (this, out); +        VALIDATE_OR_GOTO (this->private, out); -	priv = this->private; +        priv = this->private; -	transaction_frame = copy_frame (frame); -	if (!transaction_frame) { -		gf_log (this->name, GF_LOG_ERROR, -			"Out of memory."); -		goto out; -	} +        transaction_frame = copy_frame (frame); +        if (!transaction_frame) { +                gf_log (this->name, GF_LOG_ERROR, +                        "Out of memory."); +                goto out; +        } -	ALLOC_OR_GOTO (local, afr_local_t, out); +        ALLOC_OR_GOTO (local, afr_local_t, out); -	ret = AFR_LOCAL_INIT (local, priv); -	if (ret < 0) { -		op_errno = -ret; -		goto out; -	} +        ret = AFR_LOCAL_INIT (local, priv); +        if (ret < 0) { +                op_errno = -ret; +                goto out; +        } -	transaction_frame->local = local; +        transaction_frame->local = local; -	loc_copy (&local->loc, loc); +        loc_copy (&local->loc, loc);          LOCK (&priv->read_child_lock);          { -                local->read_child_index = (++priv->read_child_rr)  +                local->read_child_index = (++priv->read_child_rr)                          % (priv->child_count);          }          UNLOCK (&priv->read_child_lock); -	local->cont.create.flags = flags; -	local->cont.create.mode  = mode; -	local->cont.create.fd    = fd_ref (fd); +        local->cont.create.flags = flags; +        local->cont.create.mode  = mode; +        local->cont.create.fd    = fd_ref (fd);          if (params)                  local->cont.create.params = dict_ref (params);          if (loc->parent)                  local->cont.create.parent_ino = loc->parent->ino; -	local->transaction.fop    = afr_create_wind; -	local->transaction.done   = afr_create_done; -	local->transaction.unwind = afr_create_unwind; +        local->transaction.fop    = afr_create_wind; +        local->transaction.done   = afr_create_done; +        local->transaction.unwind = afr_create_unwind; -	afr_build_parent_loc (&local->transaction.parent_loc, loc); +        afr_build_parent_loc (&local->transaction.parent_loc, loc); -	local->transaction.main_frame = frame; -	local->transaction.basename = AFR_BASENAME (loc->path); +        local->transaction.main_frame = frame; +        local->transaction.basename = AFR_BASENAME (loc->path); -	afr_transaction (transaction_frame, this, AFR_ENTRY_TRANSACTION); +        afr_transaction (transaction_frame, this, AFR_ENTRY_TRANSACTION); -	op_ret = 0; +        op_ret = 0;  out: -	if (op_ret == -1) { -		if (transaction_frame) -			AFR_STACK_DESTROY (transaction_frame); -		AFR_STACK_UNWIND (create, frame, op_ret, op_errno, +        if (op_ret == -1) { +                if (transaction_frame) +                        AFR_STACK_DESTROY (transaction_frame); +                AFR_STACK_UNWIND (create, frame, op_ret, op_errno,                                    NULL, NULL, NULL, NULL, NULL); -	} +        } -	return 0; +        return 0;  }  /* }}} */ @@ -365,23 +365,23 @@ out:  int  afr_mknod_unwind (call_frame_t *frame, xlator_t *this)  { -	call_frame_t *main_frame = NULL; -	afr_local_t  *local = NULL; +        call_frame_t *main_frame = NULL; +        afr_local_t  *local = NULL;          struct iatt *unwind_buf = NULL; -	local = frame->local; +        local = frame->local; -	LOCK (&frame->lock); -	{ -		if (local->transaction.main_frame) { -			main_frame = local->transaction.main_frame; -		} -		local->transaction.main_frame = NULL; -	} -	UNLOCK (&frame->lock); +        LOCK (&frame->lock); +        { +                if (local->transaction.main_frame) { +                        main_frame = local->transaction.main_frame; +                } +                local->transaction.main_frame = NULL; +        } +        UNLOCK (&frame->lock); -	if (main_frame) { +        if (main_frame) {                  if (local->cont.mknod.read_child_buf.ia_ino) {                          unwind_buf = &local->cont.mknod.read_child_buf;                  } else { @@ -393,14 +393,14 @@ afr_mknod_unwind (call_frame_t *frame, xlator_t *this)                  local->cont.mknod.preparent.ia_ino  = local->cont.mknod.parent_ino;                  local->cont.mknod.postparent.ia_ino = local->cont.mknod.parent_ino; -		AFR_STACK_UNWIND (mknod, main_frame, +                AFR_STACK_UNWIND (mknod, main_frame,                                    local->op_ret, local->op_errno, -				  local->cont.mknod.inode, -				  unwind_buf, &local->cont.mknod.preparent, +                                  local->cont.mknod.inode, +                                  unwind_buf, &local->cont.mknod.preparent,                                    &local->cont.mknod.postparent);          } -	return 0; +        return 0;  } @@ -410,31 +410,31 @@ afr_mknod_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                      struct iatt *buf, struct iatt *preparent,                      struct iatt *postparent)  { -	afr_local_t *   local = NULL; -	afr_private_t * priv  = NULL; +        afr_local_t *   local = NULL; +        afr_private_t * priv  = NULL; -	int call_count = -1; -	int child_index = -1; +        int call_count = -1; +        int child_index = -1; -	local = frame->local; -	priv = this->private; +        local = frame->local; +        priv = this->private; -	child_index = (long) cookie; +        child_index = (long) cookie; -	LOCK (&frame->lock); -	{ -		if (afr_fop_failed (op_ret, op_errno)) -			afr_transaction_fop_failed (frame, this, child_index); -		 -		if (op_ret != -1) { -			local->op_ret = op_ret; +        LOCK (&frame->lock); +        { +                if (afr_fop_failed (op_ret, op_errno)) +                        afr_transaction_fop_failed (frame, this, child_index); -			if (local->success_count == 0){ -				local->cont.mknod.buf   = *buf; -				local->cont.mknod.ino   =  -					afr_itransform (buf->ia_ino, -							priv->child_count, -							child_index); +                if (op_ret != -1) { +                        local->op_ret = op_ret; + +                        if (local->success_count == 0){ +                                local->cont.mknod.buf   = *buf; +                                local->cont.mknod.ino   = +                                        afr_itransform (buf->ia_ino, +                                                        priv->child_count, +                                                        child_index);                                  if (priv->read_child >= 0) {                                          afr_set_read_child (this, inode, @@ -443,7 +443,7 @@ afr_mknod_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                                          afr_set_read_child (this, inode,                                                              local->read_child_index);                                  } -			} +                        }                          if (child_index == local->first_up_child) {                                  local->cont.mknod.ino = @@ -457,154 +457,154 @@ afr_mknod_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                                  local->cont.mknod.preparent      = *preparent;                                  local->cont.mknod.postparent     = *postparent;                          } -                         -			local->cont.mknod.inode = inode; -			local->success_count++; -		} +                        local->cont.mknod.inode = inode; -		local->op_errno = op_errno; -	} -	UNLOCK (&frame->lock); +                        local->success_count++; +                } -	call_count = afr_frame_return (frame); +                local->op_errno = op_errno; +        } +        UNLOCK (&frame->lock); -	if (call_count == 0) { -		local->transaction.unwind (frame, this); +        call_count = afr_frame_return (frame); -		local->transaction.resume (frame, this); -	} -	 -	return 0; +        if (call_count == 0) { +                local->transaction.unwind (frame, this); + +                local->transaction.resume (frame, this); +        } + +        return 0;  }  int32_t  afr_mknod_wind (call_frame_t *frame, xlator_t *this)  { -	afr_local_t *local = NULL; -	afr_private_t *priv = NULL; +        afr_local_t *local = NULL; +        afr_private_t *priv = NULL; -	int call_count = -1; -	int i = 0; +        int call_count = -1; +        int i = 0; -	local = frame->local; -	priv  = this->private; +        local = frame->local; +        priv  = this->private; -	call_count = afr_up_children_count (priv->child_count, local->child_up); +        call_count = afr_up_children_count (priv->child_count, local->child_up); -	if (call_count == 0) { -		local->transaction.resume (frame, this); -		return 0; -	} +        if (call_count == 0) { +                local->transaction.resume (frame, this); +                return 0; +        } -	local->call_count = call_count; +        local->call_count = call_count; -	for (i = 0; i < priv->child_count; i++) {				 -		if (local->child_up[i]) { -			STACK_WIND_COOKIE (frame, afr_mknod_wind_cbk, (void *) (long) i, -					   priv->children[i],  -					   priv->children[i]->fops->mknod, -					   &local->loc, local->cont.mknod.mode, -					   local->cont.mknod.dev, +        for (i = 0; i < priv->child_count; i++) { +                if (local->child_up[i]) { +                        STACK_WIND_COOKIE (frame, afr_mknod_wind_cbk, (void *) (long) i, +                                           priv->children[i], +                                           priv->children[i]->fops->mknod, +                                           &local->loc, local->cont.mknod.mode, +                                           local->cont.mknod.dev,                                             local->cont.mknod.params); -			if (!--call_count) -				break; -		} -	} -	 -	return 0; +                        if (!--call_count) +                                break; +                } +        } + +        return 0;  }  int  afr_mknod_done (call_frame_t *frame, xlator_t *this)  { -	afr_local_t * local = NULL; +        afr_local_t * local = NULL; -	local = frame->local; +        local = frame->local; -	local->transaction.unwind (frame, this); -	AFR_STACK_DESTROY (frame); +        local->transaction.unwind (frame, this); +        AFR_STACK_DESTROY (frame); -	return 0; +        return 0;  }  int  afr_mknod (call_frame_t *frame, xlator_t *this, -	   loc_t *loc, mode_t mode, dev_t dev, dict_t *params) +           loc_t *loc, mode_t mode, dev_t dev, dict_t *params)  { -	afr_private_t * priv  = NULL; -	afr_local_t   * local = NULL; -	call_frame_t  * transaction_frame = NULL; +        afr_private_t * priv  = NULL; +        afr_local_t   * local = NULL; +        call_frame_t  * transaction_frame = NULL; -	int ret = -1; +        int ret = -1; -	int op_ret   = -1; -	int op_errno = 0; +        int op_ret   = -1; +        int op_errno = 0; -	VALIDATE_OR_GOTO (frame, out); -	VALIDATE_OR_GOTO (this, out); -	VALIDATE_OR_GOTO (this->private, out); +        VALIDATE_OR_GOTO (frame, out); +        VALIDATE_OR_GOTO (this, out); +        VALIDATE_OR_GOTO (this->private, out); -	priv = this->private; +        priv = this->private; -	transaction_frame = copy_frame (frame); -	if (!transaction_frame) { -		gf_log (this->name, GF_LOG_ERROR, -			"Out of memory."); -		goto out; -	} +        transaction_frame = copy_frame (frame); +        if (!transaction_frame) { +                gf_log (this->name, GF_LOG_ERROR, +                        "Out of memory."); +                goto out; +        } -	ALLOC_OR_GOTO (local, afr_local_t, out); +        ALLOC_OR_GOTO (local, afr_local_t, out); -	ret = AFR_LOCAL_INIT (local, priv); -	if (ret < 0) { -		op_errno = -ret; -		goto out; -	} +        ret = AFR_LOCAL_INIT (local, priv); +        if (ret < 0) { +                op_errno = -ret; +                goto out; +        } -	transaction_frame->local = local; +        transaction_frame->local = local; -	loc_copy (&local->loc, loc); +        loc_copy (&local->loc, loc);          LOCK (&priv->read_child_lock);          { -                local->read_child_index = (++priv->read_child_rr)  +                local->read_child_index = (++priv->read_child_rr)                          % (priv->child_count);          }          UNLOCK (&priv->read_child_lock); -	local->cont.mknod.mode  = mode; -	local->cont.mknod.dev   = dev; +        local->cont.mknod.mode  = mode; +        local->cont.mknod.dev   = dev;          if (params)                  local->cont.mknod.params = dict_ref (params);          if (loc->parent)                  local->cont.mknod.parent_ino = loc->parent->ino; -	local->transaction.fop    = afr_mknod_wind; -	local->transaction.done   = afr_mknod_done; -	local->transaction.unwind = afr_mknod_unwind; +        local->transaction.fop    = afr_mknod_wind; +        local->transaction.done   = afr_mknod_done; +        local->transaction.unwind = afr_mknod_unwind; -	afr_build_parent_loc (&local->transaction.parent_loc, loc); +        afr_build_parent_loc (&local->transaction.parent_loc, loc); -	local->transaction.main_frame = frame; -	local->transaction.basename = AFR_BASENAME (loc->path); +        local->transaction.main_frame = frame; +        local->transaction.basename = AFR_BASENAME (loc->path); -	afr_transaction (transaction_frame, this, AFR_ENTRY_TRANSACTION); +        afr_transaction (transaction_frame, this, AFR_ENTRY_TRANSACTION); -	op_ret = 0; +        op_ret = 0;  out: -	if (op_ret == -1) { -		if (transaction_frame) -			AFR_STACK_DESTROY (transaction_frame); -		AFR_STACK_UNWIND (mknod, frame, op_ret, op_errno, +        if (op_ret == -1) { +                if (transaction_frame) +                        AFR_STACK_DESTROY (transaction_frame); +                AFR_STACK_UNWIND (mknod, frame, op_ret, op_errno,                                    NULL, NULL, NULL, NULL); -	} +        } -	return 0; +        return 0;  }  /* }}} */ @@ -615,23 +615,23 @@ out:  int  afr_mkdir_unwind (call_frame_t *frame, xlator_t *this)  { -	call_frame_t *main_frame = NULL; -	afr_local_t  *local = NULL; +        call_frame_t *main_frame = NULL; +        afr_local_t  *local = NULL;          struct iatt *unwind_buf = NULL; -         -	local = frame->local; - -	LOCK (&frame->lock); -	{ -		if (local->transaction.main_frame) { -			main_frame = local->transaction.main_frame; -		} -		local->transaction.main_frame = NULL; -	} -	UNLOCK (&frame->lock); - -	if (main_frame) { + +        local = frame->local; + +        LOCK (&frame->lock); +        { +                if (local->transaction.main_frame) { +                        main_frame = local->transaction.main_frame; +                } +                local->transaction.main_frame = NULL; +        } +        UNLOCK (&frame->lock); + +        if (main_frame) {                  if (local->cont.mkdir.read_child_buf.ia_ino) {                          unwind_buf = &local->cont.mkdir.read_child_buf;                  } else { @@ -643,14 +643,14 @@ afr_mkdir_unwind (call_frame_t *frame, xlator_t *this)                  local->cont.mkdir.preparent.ia_ino  = local->cont.mkdir.parent_ino;                  local->cont.mkdir.postparent.ia_ino = local->cont.mkdir.parent_ino; -		AFR_STACK_UNWIND (mkdir, main_frame, +                AFR_STACK_UNWIND (mkdir, main_frame,                                    local->op_ret, local->op_errno, -				  local->cont.mkdir.inode, -				  unwind_buf, &local->cont.mkdir.preparent, -                        &local->cont.mkdir.postparent); +                                  local->cont.mkdir.inode, +                                  unwind_buf, &local->cont.mkdir.preparent, +                                  &local->cont.mkdir.postparent);          } -	return 0; +        return 0;  } @@ -660,27 +660,27 @@ afr_mkdir_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                      struct iatt *buf, struct iatt *preparent,                      struct iatt *postparent)  { -	afr_local_t *   local = NULL; -	afr_private_t * priv  = NULL; +        afr_local_t *   local = NULL; +        afr_private_t * priv  = NULL; -	int call_count = -1; -	int child_index = -1; +        int call_count = -1; +        int child_index = -1; -	local = frame->local; -	priv = this->private; +        local = frame->local; +        priv = this->private; -	child_index = (long) cookie; +        child_index = (long) cookie; -	LOCK (&frame->lock); -	{ -		if (afr_fop_failed (op_ret, op_errno)) -			afr_transaction_fop_failed (frame, this, child_index); +        LOCK (&frame->lock); +        { +                if (afr_fop_failed (op_ret, op_errno)) +                        afr_transaction_fop_failed (frame, this, child_index); -		if (op_ret != -1) { -			local->op_ret           = op_ret; +                if (op_ret != -1) { +                        local->op_ret           = op_ret; -			if (local->success_count == 0) { -				local->cont.mkdir.buf   = *buf; +                        if (local->success_count == 0) { +                                local->cont.mkdir.buf   = *buf;                                  local->cont.mkdir.ino =                                          afr_itransform (buf->ia_ino, @@ -694,7 +694,7 @@ afr_mkdir_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                                          afr_set_read_child (this, inode,                                                              local->read_child_index);                                  } -			} +                        }                          if (child_index == local->first_up_child) {                                  local->cont.mkdir.ino = @@ -702,161 +702,161 @@ afr_mkdir_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                                                          priv->child_count,                                                          local->first_up_child);                          } -                         +                          if (child_index == local->read_child_index) {                                  local->cont.mkdir.read_child_buf = *buf;                                  local->cont.mkdir.preparent      = *preparent;                                  local->cont.mkdir.postparent     = *postparent;                          } -			local->cont.mkdir.inode = inode; +                        local->cont.mkdir.inode = inode; + +                        local->success_count++; +                } -			local->success_count++; -		} +                local->op_errno         = op_errno; +        } +        UNLOCK (&frame->lock); -		local->op_errno         = op_errno; -	} -	UNLOCK (&frame->lock); +        call_count = afr_frame_return (frame); -	call_count = afr_frame_return (frame); +        if (call_count == 0) { +                local->transaction.unwind (frame, this); -	if (call_count == 0) { -		local->transaction.unwind (frame, this); +                local->transaction.resume (frame, this); +        } -		local->transaction.resume (frame, this); -	} -	 -	return 0; +        return 0;  }  int  afr_mkdir_wind (call_frame_t *frame, xlator_t *this)  { -	afr_local_t *local = NULL; -	afr_private_t *priv = NULL; -	 -	int call_count = -1; -	int i = 0; - -	local = frame->local; -	priv  = this->private; - -	call_count = afr_up_children_count (priv->child_count, local->child_up); - -	if (call_count == 0) { -		local->transaction.resume (frame, this); -		return 0; -	} - -	local->call_count = call_count; - -	for (i = 0; i < priv->child_count; i++) {				 -		if (local->child_up[i]) { -			STACK_WIND_COOKIE (frame, afr_mkdir_wind_cbk, -					   (void *) (long) i,	 -					   priv->children[i],  -					   priv->children[i]->fops->mkdir, -					   &local->loc, local->cont.mkdir.mode, +        afr_local_t *local = NULL; +        afr_private_t *priv = NULL; + +        int call_count = -1; +        int i = 0; + +        local = frame->local; +        priv  = this->private; + +        call_count = afr_up_children_count (priv->child_count, local->child_up); + +        if (call_count == 0) { +                local->transaction.resume (frame, this); +                return 0; +        } + +        local->call_count = call_count; + +        for (i = 0; i < priv->child_count; i++) { +                if (local->child_up[i]) { +                        STACK_WIND_COOKIE (frame, afr_mkdir_wind_cbk, +                                           (void *) (long) i, +                                           priv->children[i], +                                           priv->children[i]->fops->mkdir, +                                           &local->loc, local->cont.mkdir.mode,                                             local->cont.mkdir.params); -			if (!--call_count) -				break; -		} -	} -	 -	return 0; +                        if (!--call_count) +                                break; +                } +        } + +        return 0;  }  int  afr_mkdir_done (call_frame_t *frame, xlator_t *this)  { -	afr_local_t * local = NULL; +        afr_local_t * local = NULL; -	local = frame->local; +        local = frame->local; -	local->transaction.unwind (frame, this); +        local->transaction.unwind (frame, this); -	AFR_STACK_DESTROY (frame); +        AFR_STACK_DESTROY (frame); -	return 0; +        return 0;  }  int  afr_mkdir (call_frame_t *frame, xlator_t *this, -	   loc_t *loc, mode_t mode, dict_t *params) +           loc_t *loc, mode_t mode, dict_t *params)  { -	afr_private_t * priv  = NULL; -	afr_local_t   * local = NULL; -	call_frame_t  * transaction_frame = NULL; +        afr_private_t * priv  = NULL; +        afr_local_t   * local = NULL; +        call_frame_t  * transaction_frame = NULL; -	int ret = -1; +        int ret = -1; -	int op_ret   = -1; -	int op_errno = 0; +        int op_ret   = -1; +        int op_errno = 0; -	VALIDATE_OR_GOTO (frame, out); -	VALIDATE_OR_GOTO (this, out); -	VALIDATE_OR_GOTO (this->private, out); +        VALIDATE_OR_GOTO (frame, out); +        VALIDATE_OR_GOTO (this, out); +        VALIDATE_OR_GOTO (this->private, out); -	priv = this->private; +        priv = this->private; -	transaction_frame = copy_frame (frame); -	if (!transaction_frame) { -		gf_log (this->name, GF_LOG_ERROR, -			"Out of memory."); -		goto out; -	} +        transaction_frame = copy_frame (frame); +        if (!transaction_frame) { +                gf_log (this->name, GF_LOG_ERROR, +                        "Out of memory."); +                goto out; +        } -	ALLOC_OR_GOTO (local, afr_local_t, out); +        ALLOC_OR_GOTO (local, afr_local_t, out); -	ret = AFR_LOCAL_INIT (local, priv); -	if (ret < 0) { -		op_errno = -ret; -		goto out; -	} +        ret = AFR_LOCAL_INIT (local, priv); +        if (ret < 0) { +                op_errno = -ret; +                goto out; +        } -	transaction_frame->local = local; +        transaction_frame->local = local; -	loc_copy (&local->loc, loc); +        loc_copy (&local->loc, loc);          LOCK (&priv->read_child_lock);          { -                local->read_child_index = (++priv->read_child_rr)  +                local->read_child_index = (++priv->read_child_rr)                          % (priv->child_count);          }          UNLOCK (&priv->read_child_lock); -	local->cont.mkdir.mode  = mode; +        local->cont.mkdir.mode  = mode;          if (params)                  local->cont.mkdir.params = dict_ref (params);          if (loc->parent)                  local->cont.mkdir.parent_ino = loc->parent->ino; -	local->transaction.fop    = afr_mkdir_wind; -	local->transaction.done   = afr_mkdir_done; -	local->transaction.unwind = afr_mkdir_unwind; +        local->transaction.fop    = afr_mkdir_wind; +        local->transaction.done   = afr_mkdir_done; +        local->transaction.unwind = afr_mkdir_unwind; -	afr_build_parent_loc (&local->transaction.parent_loc, loc); +        afr_build_parent_loc (&local->transaction.parent_loc, loc); -	local->transaction.main_frame = frame; -	local->transaction.basename = AFR_BASENAME (loc->path); +        local->transaction.main_frame = frame; +        local->transaction.basename = AFR_BASENAME (loc->path); -	afr_transaction (transaction_frame, this, AFR_ENTRY_TRANSACTION); +        afr_transaction (transaction_frame, this, AFR_ENTRY_TRANSACTION); -	op_ret = 0; +        op_ret = 0;  out: -	if (op_ret == -1) { -		if (transaction_frame) -			AFR_STACK_DESTROY (transaction_frame); +        if (op_ret == -1) { +                if (transaction_frame) +                        AFR_STACK_DESTROY (transaction_frame); -		AFR_STACK_UNWIND (mkdir, frame, op_ret, op_errno, +                AFR_STACK_UNWIND (mkdir, frame, op_ret, op_errno,                                    NULL, NULL, NULL, NULL); -	} +        } -	return 0; +        return 0;  }  /* }}} */ @@ -867,72 +867,72 @@ out:  int  afr_link_unwind (call_frame_t *frame, xlator_t *this)  { -	call_frame_t *main_frame = NULL; -	afr_local_t  *local = NULL; +        call_frame_t *main_frame = NULL; +        afr_local_t  *local = NULL;          struct iatt *unwind_buf = NULL; -	local = frame->local; +        local = frame->local; -	LOCK (&frame->lock); -	{ -		if (local->transaction.main_frame) { -			main_frame = local->transaction.main_frame; -		} -		local->transaction.main_frame = NULL; -	} -	UNLOCK (&frame->lock); +        LOCK (&frame->lock); +        { +                if (local->transaction.main_frame) { +                        main_frame = local->transaction.main_frame; +                } +                local->transaction.main_frame = NULL; +        } +        UNLOCK (&frame->lock); -	if (main_frame) { +        if (main_frame) {                  if (local->cont.link.read_child_buf.ia_ino) {                          unwind_buf = &local->cont.link.read_child_buf;                  } else {                          unwind_buf = &local->cont.link.buf;                  } -		unwind_buf->ia_ino = local->cont.link.ino; +                unwind_buf->ia_ino = local->cont.link.ino;                  local->cont.link.preparent.ia_ino  = local->cont.link.parent_ino;                  local->cont.link.postparent.ia_ino = local->cont.link.parent_ino; -		AFR_STACK_UNWIND (link, main_frame, -                                  local->op_ret, local->op_errno,  -				  local->cont.link.inode, -				  unwind_buf, &local->cont.link.preparent, +                AFR_STACK_UNWIND (link, main_frame, +                                  local->op_ret, local->op_errno, +                                  local->cont.link.inode, +                                  unwind_buf, &local->cont.link.preparent,                                    &local->cont.link.postparent); -	} +        } -	return 0; +        return 0;  }  int -afr_link_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  -		   int32_t op_ret, int32_t op_errno, inode_t *inode, +afr_link_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                   int32_t op_ret, int32_t op_errno, inode_t *inode,                     struct iatt *buf, struct iatt *preparent,                     struct iatt *postparent)  { -	afr_local_t *   local = NULL; -	afr_private_t * priv  = NULL; +        afr_local_t *   local = NULL; +        afr_private_t * priv  = NULL; -	int call_count = -1; -	int child_index = -1; +        int call_count = -1; +        int child_index = -1; -	local = frame->local; -	priv = this->private; +        local = frame->local; +        priv = this->private; -	child_index = (long) cookie; +        child_index = (long) cookie; -	LOCK (&frame->lock); -	{ -		if (afr_fop_failed (op_ret, op_errno)) -			afr_transaction_fop_failed (frame, this, child_index); +        LOCK (&frame->lock); +        { +                if (afr_fop_failed (op_ret, op_errno)) +                        afr_transaction_fop_failed (frame, this, child_index); -		if (op_ret != -1) { -			local->op_ret   = op_ret; +                if (op_ret != -1) { +                        local->op_ret   = op_ret; -			if (local->success_count == 0) { -				local->cont.link.buf        = *buf; +                        if (local->success_count == 0) { +                                local->cont.link.buf        = *buf;                                  if (priv->read_child >= 0) {                                          afr_set_read_child (this, inode, @@ -941,7 +941,7 @@ afr_link_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                                          afr_set_read_child (this, inode,                                                              local->read_child_index);                                  } -			} +                        }                          if (child_index == local->read_child_index) {                                  local->cont.link.read_child_buf = *buf; @@ -949,151 +949,151 @@ afr_link_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                                  local->cont.link.postparent     = *postparent;                          } -			local->cont.link.inode    = inode; +                        local->cont.link.inode    = inode; -			local->success_count++; -		} +                        local->success_count++; +                } + +                local->op_errno = op_errno; +        } +        UNLOCK (&frame->lock); -		local->op_errno = op_errno;		 -	} -	UNLOCK (&frame->lock); +        call_count = afr_frame_return (frame); -	call_count = afr_frame_return (frame); +        if (call_count == 0) { +                local->transaction.unwind (frame, this); -	if (call_count == 0) { -		local->transaction.unwind (frame, this); +                local->transaction.resume (frame, this); +        } -		local->transaction.resume (frame, this); -	} -	 -	return 0; +        return 0;  }  int  afr_link_wind (call_frame_t *frame, xlator_t *this)  { -	afr_local_t *local = NULL; -	afr_private_t *priv = NULL; - -	int call_count = -1; -	int i = 0; - -	local = frame->local; -	priv  = this->private; - -	call_count = afr_up_children_count (priv->child_count, local->child_up); - -	if (call_count == 0) { -		local->transaction.resume (frame, this); -		return 0; -	} - -	local->call_count = call_count; - -	for (i = 0; i < priv->child_count; i++) {				 -		if (local->child_up[i]) { -			STACK_WIND_COOKIE (frame, afr_link_wind_cbk, (void *) (long) i, -					   priv->children[i],  -					   priv->children[i]->fops->link, -					   &local->loc, -					   &local->newloc); -			 -			if (!--call_count) -				break; -		} -	} -	 -	return 0; +        afr_local_t *local = NULL; +        afr_private_t *priv = NULL; + +        int call_count = -1; +        int i = 0; + +        local = frame->local; +        priv  = this->private; + +        call_count = afr_up_children_count (priv->child_count, local->child_up); + +        if (call_count == 0) { +                local->transaction.resume (frame, this); +                return 0; +        } + +        local->call_count = call_count; + +        for (i = 0; i < priv->child_count; i++) { +                if (local->child_up[i]) { +                        STACK_WIND_COOKIE (frame, afr_link_wind_cbk, (void *) (long) i, +                                           priv->children[i], +                                           priv->children[i]->fops->link, +                                           &local->loc, +                                           &local->newloc); + +                        if (!--call_count) +                                break; +                } +        } + +        return 0;  }  int  afr_link_done (call_frame_t *frame, xlator_t *this)  { -	afr_local_t * local = frame->local; +        afr_local_t * local = frame->local; -	local->transaction.unwind (frame, this); +        local->transaction.unwind (frame, this); -	AFR_STACK_DESTROY (frame); +        AFR_STACK_DESTROY (frame); -	return 0; +        return 0;  }  int  afr_link (call_frame_t *frame, xlator_t *this, -	  loc_t *oldloc, loc_t *newloc) +          loc_t *oldloc, loc_t *newloc)  { -	afr_private_t * priv  = NULL; -	afr_local_t   * local = NULL; -	call_frame_t  * transaction_frame = NULL; +        afr_private_t * priv  = NULL; +        afr_local_t   * local = NULL; +        call_frame_t  * transaction_frame = NULL; -	int ret = -1; +        int ret = -1; -	int op_ret   = -1; -	int op_errno = 0; +        int op_ret   = -1; +        int op_errno = 0; -	VALIDATE_OR_GOTO (frame, out); -	VALIDATE_OR_GOTO (this, out); -	VALIDATE_OR_GOTO (this->private, out); +        VALIDATE_OR_GOTO (frame, out); +        VALIDATE_OR_GOTO (this, out); +        VALIDATE_OR_GOTO (this->private, out); -	priv = this->private; +        priv = this->private; -	transaction_frame = copy_frame (frame); -	if (!transaction_frame) { -		gf_log (this->name, GF_LOG_ERROR, -			"Out of memory."); -		goto out; -	} +        transaction_frame = copy_frame (frame); +        if (!transaction_frame) { +                gf_log (this->name, GF_LOG_ERROR, +                        "Out of memory."); +                goto out; +        } -	ALLOC_OR_GOTO (local, afr_local_t, out); +        ALLOC_OR_GOTO (local, afr_local_t, out); -	ret = AFR_LOCAL_INIT (local, priv); -	if (ret < 0) { -		op_errno = -ret; -		goto out; -	} +        ret = AFR_LOCAL_INIT (local, priv); +        if (ret < 0) { +                op_errno = -ret; +                goto out; +        } -	transaction_frame->local = local; +        transaction_frame->local = local; -	loc_copy (&local->loc,    oldloc); -	loc_copy (&local->newloc, newloc); +        loc_copy (&local->loc,    oldloc); +        loc_copy (&local->newloc, newloc);          LOCK (&priv->read_child_lock);          { -                local->read_child_index = (++priv->read_child_rr)  +                local->read_child_index = (++priv->read_child_rr)                          % (priv->child_count);          }          UNLOCK (&priv->read_child_lock); -	local->cont.link.ino = oldloc->inode->ino; +        local->cont.link.ino = oldloc->inode->ino;          if (oldloc->parent)                  local->cont.link.parent_ino = newloc->parent->ino; -	local->transaction.fop    = afr_link_wind; -	local->transaction.done   = afr_link_done; -	local->transaction.unwind = afr_link_unwind; +        local->transaction.fop    = afr_link_wind; +        local->transaction.done   = afr_link_done; +        local->transaction.unwind = afr_link_unwind; -	afr_build_parent_loc (&local->transaction.parent_loc, oldloc); +        afr_build_parent_loc (&local->transaction.parent_loc, oldloc); -	local->transaction.main_frame   = frame; -	local->transaction.basename     = AFR_BASENAME (oldloc->path); -	local->transaction.new_basename = AFR_BASENAME (newloc->path); +        local->transaction.main_frame   = frame; +        local->transaction.basename     = AFR_BASENAME (oldloc->path); +        local->transaction.new_basename = AFR_BASENAME (newloc->path); -	afr_transaction (transaction_frame, this, AFR_ENTRY_TRANSACTION); +        afr_transaction (transaction_frame, this, AFR_ENTRY_TRANSACTION); -	op_ret = 0; +        op_ret = 0;  out: -	if (op_ret == -1) { -		if (transaction_frame) -			AFR_STACK_DESTROY (transaction_frame); -		AFR_STACK_UNWIND (link, frame, op_ret, op_errno, +        if (op_ret == -1) { +                if (transaction_frame) +                        AFR_STACK_DESTROY (transaction_frame); +                AFR_STACK_UNWIND (link, frame, op_ret, op_errno,                                    NULL, NULL, NULL, NULL); -	} +        } -	return 0; +        return 0;  }  /* }}} */ @@ -1104,23 +1104,23 @@ out:  int  afr_symlink_unwind (call_frame_t *frame, xlator_t *this)  { -	call_frame_t *main_frame = NULL; -	afr_local_t  *local = NULL; -         +        call_frame_t *main_frame = NULL; +        afr_local_t  *local = NULL; +          struct iatt *unwind_buf = NULL; -         -	local = frame->local; - -	LOCK (&frame->lock); -	{ -		if (local->transaction.main_frame) { -			main_frame = local->transaction.main_frame; -		} -		local->transaction.main_frame = NULL; -	} -	UNLOCK (&frame->lock); - -	if (main_frame) { + +        local = frame->local; + +        LOCK (&frame->lock); +        { +                if (local->transaction.main_frame) { +                        main_frame = local->transaction.main_frame; +                } +                local->transaction.main_frame = NULL; +        } +        UNLOCK (&frame->lock); + +        if (main_frame) {                  if (local->cont.symlink.read_child_buf.ia_ino) {                          unwind_buf = &local->cont.symlink.read_child_buf;                  } else { @@ -1132,47 +1132,47 @@ afr_symlink_unwind (call_frame_t *frame, xlator_t *this)                  local->cont.symlink.preparent.ia_ino  = local->cont.symlink.parent_ino;                  local->cont.symlink.postparent.ia_ino = local->cont.symlink.parent_ino; -		AFR_STACK_UNWIND (symlink, main_frame, +                AFR_STACK_UNWIND (symlink, main_frame,                                    local->op_ret, local->op_errno, -				  local->cont.symlink.inode, -				  unwind_buf, &local->cont.symlink.preparent, +                                  local->cont.symlink.inode, +                                  unwind_buf, &local->cont.symlink.preparent,                                    &local->cont.symlink.postparent);          } -	return 0; +        return 0;  }  int -afr_symlink_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  -		      int32_t op_ret, int32_t op_errno, inode_t *inode, +afr_symlink_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                      int32_t op_ret, int32_t op_errno, inode_t *inode,                        struct iatt *buf, struct iatt *preparent,                        struct iatt *postparent)  { -	afr_local_t *   local = NULL; -	afr_private_t * priv  = NULL; +        afr_local_t *   local = NULL; +        afr_private_t * priv  = NULL; -	int call_count = -1; -	int child_index = -1; +        int call_count = -1; +        int child_index = -1; -	local = frame->local; -	priv = this->private; +        local = frame->local; +        priv = this->private; -	child_index = (long) cookie; +        child_index = (long) cookie; -	LOCK (&frame->lock); -	{ -		if (afr_fop_failed (op_ret, op_errno)) -			afr_transaction_fop_failed (frame, this, child_index); -		 -		if (op_ret != -1) { -			local->op_ret   = op_ret; +        LOCK (&frame->lock); +        { +                if (afr_fop_failed (op_ret, op_errno)) +                        afr_transaction_fop_failed (frame, this, child_index); + +                if (op_ret != -1) { +                        local->op_ret   = op_ret; -			if (local->success_count == 0) { -				local->cont.symlink.buf        = *buf; -				local->cont.symlink.ino =  -					afr_itransform (buf->ia_ino, priv->child_count, -							child_index); +                        if (local->success_count == 0) { +                                local->cont.symlink.buf        = *buf; +                                local->cont.symlink.ino = +                                        afr_itransform (buf->ia_ino, priv->child_count, +                                                        child_index);                                  if (priv->read_child >= 0) {                                          afr_set_read_child (this, inode, @@ -1181,7 +1181,7 @@ afr_symlink_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                                          afr_set_read_child (this, inode,                                                              local->read_child_index);                                  } -			} +                        }                          if (child_index == local->first_up_child) {                                  local->cont.symlink.ino = @@ -1196,154 +1196,154 @@ afr_symlink_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                                  local->cont.symlink.postparent     = *postparent;                          } -			local->cont.symlink.inode    = inode; +                        local->cont.symlink.inode    = inode; -			local->success_count++; -		} +                        local->success_count++; +                } + +                local->op_errno = op_errno; +        } +        UNLOCK (&frame->lock); -		local->op_errno = op_errno; -	} -	UNLOCK (&frame->lock); +        call_count = afr_frame_return (frame); -	call_count = afr_frame_return (frame); +        if (call_count == 0) { +                local->transaction.unwind (frame, this); -	if (call_count == 0) { -		local->transaction.unwind (frame, this); +                local->transaction.resume (frame, this); +        } -		local->transaction.resume (frame, this); -	} -	 -	return 0; +        return 0;  }  int  afr_symlink_wind (call_frame_t *frame, xlator_t *this)  { -	afr_local_t *local = NULL; -	afr_private_t *priv = NULL; +        afr_local_t *local = NULL; +        afr_private_t *priv = NULL; -	int call_count = -1; -	int i = 0; +        int call_count = -1; +        int i = 0; -	local = frame->local; -	priv = this->private; +        local = frame->local; +        priv = this->private; -	call_count = afr_up_children_count (priv->child_count, local->child_up); +        call_count = afr_up_children_count (priv->child_count, local->child_up); -	if (call_count == 0) { -		local->transaction.resume (frame, this); -		return 0; -	} +        if (call_count == 0) { +                local->transaction.resume (frame, this); +                return 0; +        } -	local->call_count = call_count; +        local->call_count = call_count; -	for (i = 0; i < priv->child_count; i++) {				 -		if (local->child_up[i]) { -			STACK_WIND_COOKIE (frame, afr_symlink_wind_cbk, -					   (void *) (long) i,	 -					   priv->children[i],  -					   priv->children[i]->fops->symlink, -					   local->cont.symlink.linkpath, -					   &local->loc, +        for (i = 0; i < priv->child_count; i++) { +                if (local->child_up[i]) { +                        STACK_WIND_COOKIE (frame, afr_symlink_wind_cbk, +                                           (void *) (long) i, +                                           priv->children[i], +                                           priv->children[i]->fops->symlink, +                                           local->cont.symlink.linkpath, +                                           &local->loc,                                             local->cont.symlink.params); -			if (!--call_count) -				break; +                        if (!--call_count) +                                break; -		} -	} -	 -	return 0; +                } +        } + +        return 0;  }  int  afr_symlink_done (call_frame_t *frame, xlator_t *this)  { -	afr_local_t * local = frame->local; +        afr_local_t * local = frame->local; + +        local->transaction.unwind (frame, this); -	local->transaction.unwind (frame, this); +        AFR_STACK_DESTROY (frame); -	AFR_STACK_DESTROY (frame); -	 -	return 0; +        return 0;  }  int  afr_symlink (call_frame_t *frame, xlator_t *this, -	     const char *linkpath, loc_t *loc, dict_t *params) +             const char *linkpath, loc_t *loc, dict_t *params)  { -	afr_private_t * priv  = NULL; -	afr_local_t   * local = NULL; -	call_frame_t  * transaction_frame = NULL; +        afr_private_t * priv  = NULL; +        afr_local_t   * local = NULL; +        call_frame_t  * transaction_frame = NULL; + +        int ret = -1; -	int ret = -1; +        int op_ret   = -1; +        int op_errno = 0; -	int op_ret   = -1; -	int op_errno = 0; +        VALIDATE_OR_GOTO (frame, out); +        VALIDATE_OR_GOTO (this, out); +        VALIDATE_OR_GOTO (this->private, out); -	VALIDATE_OR_GOTO (frame, out); -	VALIDATE_OR_GOTO (this, out); -	VALIDATE_OR_GOTO (this->private, out); +        priv = this->private; -	priv = this->private; +        transaction_frame = copy_frame (frame); +        if (!transaction_frame) { +                gf_log (this->name, GF_LOG_ERROR, +                        "Out of memory."); +                goto out; +        } -	transaction_frame = copy_frame (frame); -	if (!transaction_frame) { -		gf_log (this->name, GF_LOG_ERROR, -			"Out of memory."); -		goto out; -	} +        ALLOC_OR_GOTO (local, afr_local_t, out); -	ALLOC_OR_GOTO (local, afr_local_t, out); +        ret = AFR_LOCAL_INIT (local, priv); +        if (ret < 0) { +                op_errno = -ret; +                goto out; +        } -	ret = AFR_LOCAL_INIT (local, priv); -	if (ret < 0) { -		op_errno = -ret; -		goto out; -	} +        transaction_frame->local = local; -	transaction_frame->local = local; -	 -	loc_copy (&local->loc, loc); +        loc_copy (&local->loc, loc);          LOCK (&priv->read_child_lock);          { -                local->read_child_index = (++priv->read_child_rr)  +                local->read_child_index = (++priv->read_child_rr)                          % (priv->child_count);          }          UNLOCK (&priv->read_child_lock); -	local->cont.symlink.linkpath = gf_strdup (linkpath); +        local->cont.symlink.linkpath = gf_strdup (linkpath);          if (params)                  local->cont.symlink.params = dict_ref (params);          if (loc->parent)                  local->cont.symlink.parent_ino = loc->parent->ino; -	local->transaction.fop    = afr_symlink_wind; -	local->transaction.done   = afr_symlink_done; -	local->transaction.unwind = afr_symlink_unwind; +        local->transaction.fop    = afr_symlink_wind; +        local->transaction.done   = afr_symlink_done; +        local->transaction.unwind = afr_symlink_unwind; -	afr_build_parent_loc (&local->transaction.parent_loc, loc); +        afr_build_parent_loc (&local->transaction.parent_loc, loc); -	local->transaction.main_frame   = frame; -	local->transaction.basename     = AFR_BASENAME (loc->path); +        local->transaction.main_frame   = frame; +        local->transaction.basename     = AFR_BASENAME (loc->path); -	afr_transaction (transaction_frame, this, AFR_ENTRY_TRANSACTION); +        afr_transaction (transaction_frame, this, AFR_ENTRY_TRANSACTION); -	op_ret = 0; +        op_ret = 0;  out: -	if (op_ret == -1) { -		if (transaction_frame) -			AFR_STACK_DESTROY (transaction_frame); -		AFR_STACK_UNWIND (symlink, frame, op_ret, op_errno, +        if (op_ret == -1) { +                if (transaction_frame) +                        AFR_STACK_DESTROY (transaction_frame); +                AFR_STACK_UNWIND (symlink, frame, op_ret, op_errno,                                    NULL, NULL, NULL, NULL); -	} +        } -	return 0; +        return 0;  }  /* }}} */ @@ -1353,73 +1353,73 @@ out:  int  afr_rename_unwind (call_frame_t *frame, xlator_t *this)  { -	call_frame_t *main_frame = NULL; -	afr_local_t  *local = NULL; +        call_frame_t *main_frame = NULL; +        afr_local_t  *local = NULL;          struct iatt *unwind_buf = NULL; -	local = frame->local; +        local = frame->local; -	LOCK (&frame->lock); -	{ -		if (local->transaction.main_frame) { -			main_frame = local->transaction.main_frame; -		} -		local->transaction.main_frame = NULL; -	} -	UNLOCK (&frame->lock); +        LOCK (&frame->lock); +        { +                if (local->transaction.main_frame) { +                        main_frame = local->transaction.main_frame; +                } +                local->transaction.main_frame = NULL; +        } +        UNLOCK (&frame->lock); -	if (main_frame) { +        if (main_frame) {                  if (local->cont.rename.read_child_buf.ia_ino) {                          unwind_buf = &local->cont.rename.read_child_buf;                  } else {                          unwind_buf = &local->cont.rename.buf;                  } -		unwind_buf->ia_ino = local->cont.rename.ino; +                unwind_buf->ia_ino = local->cont.rename.ino;                  local->cont.rename.preoldparent.ia_ino  = local->cont.rename.oldparent_ino;                  local->cont.rename.postoldparent.ia_ino = local->cont.rename.oldparent_ino;                  local->cont.rename.prenewparent.ia_ino  = local->cont.rename.newparent_ino;                  local->cont.rename.postnewparent.ia_ino = local->cont.rename.newparent_ino; -		AFR_STACK_UNWIND (rename, main_frame, -                                  local->op_ret, local->op_errno,  -				  unwind_buf, +                AFR_STACK_UNWIND (rename, main_frame, +                                  local->op_ret, local->op_errno, +                                  unwind_buf,                                    &local->cont.rename.preoldparent,                                    &local->cont.rename.postoldparent,                                    &local->cont.rename.prenewparent,                                    &local->cont.rename.postnewparent); -	} +        } -	return 0; +        return 0;  }  int -afr_rename_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  -		     int32_t op_ret, int32_t op_errno, struct iatt *buf, +afr_rename_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                     int32_t op_ret, int32_t op_errno, struct iatt *buf,                       struct iatt *preoldparent, struct iatt *postoldparent,                       struct iatt *prenewparent, struct iatt *postnewparent)  { -	afr_local_t *   local = NULL; +        afr_local_t *   local = NULL; -	int call_count = -1; -	int child_index = -1; +        int call_count = -1; +        int child_index = -1; -	local = frame->local; +        local = frame->local; -	child_index = (long) cookie; +        child_index = (long) cookie; -	LOCK (&frame->lock); -	{ -		if (afr_fop_failed (op_ret, op_errno) && op_errno != ENOTEMPTY) -			afr_transaction_fop_failed (frame, this, child_index); +        LOCK (&frame->lock); +        { +                if (afr_fop_failed (op_ret, op_errno) && op_errno != ENOTEMPTY) +                        afr_transaction_fop_failed (frame, this, child_index); -		if (op_ret != -1) { +                if (op_ret != -1) {                          if (local->success_count == 0) {                                  local->op_ret = op_ret; -		 +                                  if (buf) {                                          local->cont.rename.buf = *buf;                                  } @@ -1437,144 +1437,144 @@ afr_rename_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                          }                  } -		local->op_errno = op_errno; -	} -	UNLOCK (&frame->lock); +                local->op_errno = op_errno; +        } +        UNLOCK (&frame->lock); + +        call_count = afr_frame_return (frame); -	call_count = afr_frame_return (frame); +        if (call_count == 0) { +                local->transaction.unwind (frame, this); +                local->transaction.resume (frame, this); +        } -	if (call_count == 0) { -		local->transaction.unwind (frame, this); -		local->transaction.resume (frame, this); -	} -	 -	return 0; +        return 0;  }  int32_t  afr_rename_wind (call_frame_t *frame, xlator_t *this)  { -	afr_local_t *local = NULL; -	afr_private_t *priv = NULL; - -	int call_count = -1; -	int i = 0; - -	local = frame->local; -	priv = this->private; - -	call_count = afr_up_children_count (priv->child_count, local->child_up); - -	if (call_count == 0) { -		local->transaction.resume (frame, this); -		return 0; -	} - -	local->call_count = call_count; - -	for (i = 0; i < priv->child_count; i++) {				 -		if (local->child_up[i]) { -			STACK_WIND_COOKIE (frame, afr_rename_wind_cbk,  -					   (void *) (long) i,	 -					   priv->children[i],  -					   priv->children[i]->fops->rename, -					   &local->loc, -					   &local->newloc); -			if (!--call_count) -				break; -		} -	} -	 -	return 0; +        afr_local_t *local = NULL; +        afr_private_t *priv = NULL; + +        int call_count = -1; +        int i = 0; + +        local = frame->local; +        priv = this->private; + +        call_count = afr_up_children_count (priv->child_count, local->child_up); + +        if (call_count == 0) { +                local->transaction.resume (frame, this); +                return 0; +        } + +        local->call_count = call_count; + +        for (i = 0; i < priv->child_count; i++) { +                if (local->child_up[i]) { +                        STACK_WIND_COOKIE (frame, afr_rename_wind_cbk, +                                           (void *) (long) i, +                                           priv->children[i], +                                           priv->children[i]->fops->rename, +                                           &local->loc, +                                           &local->newloc); +                        if (!--call_count) +                                break; +                } +        } + +        return 0;  }  int  afr_rename_done (call_frame_t *frame, xlator_t *this)  { -	afr_local_t * local = frame->local; +        afr_local_t * local = frame->local; -	local->transaction.unwind (frame, this); +        local->transaction.unwind (frame, this); -	AFR_STACK_DESTROY (frame); -	 -	return 0; +        AFR_STACK_DESTROY (frame); + +        return 0;  }  int  afr_rename (call_frame_t *frame, xlator_t *this, -	    loc_t *oldloc, loc_t *newloc) +            loc_t *oldloc, loc_t *newloc)  { -	afr_private_t * priv  = NULL; -	afr_local_t   * local = NULL; -	call_frame_t  * transaction_frame = NULL; +        afr_private_t * priv  = NULL; +        afr_local_t   * local = NULL; +        call_frame_t  * transaction_frame = NULL; -	int ret = -1; +        int ret = -1; -	int op_ret   = -1; -	int op_errno = 0; +        int op_ret   = -1; +        int op_errno = 0; -	VALIDATE_OR_GOTO (frame, out); -	VALIDATE_OR_GOTO (this, out); -	VALIDATE_OR_GOTO (this->private, out); +        VALIDATE_OR_GOTO (frame, out); +        VALIDATE_OR_GOTO (this, out); +        VALIDATE_OR_GOTO (this->private, out); -	priv = this->private; +        priv = this->private; -	transaction_frame = copy_frame (frame); -	if (!transaction_frame) { -		gf_log (this->name, GF_LOG_ERROR, -			"Out of memory."); -		goto out; -	} +        transaction_frame = copy_frame (frame); +        if (!transaction_frame) { +                gf_log (this->name, GF_LOG_ERROR, +                        "Out of memory."); +                goto out; +        } -	ALLOC_OR_GOTO (local, afr_local_t, out); +        ALLOC_OR_GOTO (local, afr_local_t, out); -	ret = AFR_LOCAL_INIT (local, priv); -	if (ret < 0) { -		op_errno = -ret; -		goto out; -	} +        ret = AFR_LOCAL_INIT (local, priv); +        if (ret < 0) { +                op_errno = -ret; +                goto out; +        } -	transaction_frame->local = local; +        transaction_frame->local = local; -	loc_copy (&local->loc,    oldloc); -	loc_copy (&local->newloc, newloc); +        loc_copy (&local->loc,    oldloc); +        loc_copy (&local->newloc, newloc);          local->read_child_index = afr_read_child (this, oldloc->inode); -	local->cont.rename.ino = oldloc->inode->ino; +        local->cont.rename.ino = oldloc->inode->ino;          if (oldloc->parent)                  local->cont.rename.oldparent_ino = oldloc->parent->ino;          if (newloc->parent)                  local->cont.rename.newparent_ino = newloc->parent->ino; -	local->transaction.fop    = afr_rename_wind; -	local->transaction.done   = afr_rename_done; -	local->transaction.unwind = afr_rename_unwind; +        local->transaction.fop    = afr_rename_wind; +        local->transaction.done   = afr_rename_done; +        local->transaction.unwind = afr_rename_unwind; -	afr_build_parent_loc (&local->transaction.parent_loc, oldloc); -	afr_build_parent_loc (&local->transaction.new_parent_loc, newloc); +        afr_build_parent_loc (&local->transaction.parent_loc, oldloc); +        afr_build_parent_loc (&local->transaction.new_parent_loc, newloc); -	local->transaction.main_frame   = frame; -	local->transaction.basename     = AFR_BASENAME (oldloc->path); -	local->transaction.new_basename = AFR_BASENAME (newloc->path); +        local->transaction.main_frame   = frame; +        local->transaction.basename     = AFR_BASENAME (oldloc->path); +        local->transaction.new_basename = AFR_BASENAME (newloc->path); -	afr_transaction (transaction_frame, this, AFR_ENTRY_RENAME_TRANSACTION); +        afr_transaction (transaction_frame, this, AFR_ENTRY_RENAME_TRANSACTION); -	op_ret = 0; +        op_ret = 0;  out: -	if (op_ret == -1) { -		if (transaction_frame) -			AFR_STACK_DESTROY (transaction_frame); +        if (op_ret == -1) { +                if (transaction_frame) +                        AFR_STACK_DESTROY (transaction_frame); -		AFR_STACK_UNWIND (rename, frame, op_ret, op_errno, +                AFR_STACK_UNWIND (rename, frame, op_ret, op_errno,                                    NULL, NULL, NULL, NULL, NULL); -	} +        } -	return 0; +        return 0;  }  /* }}} */ @@ -1584,201 +1584,201 @@ out:  int  afr_unlink_unwind (call_frame_t *frame, xlator_t *this)  { -	call_frame_t *main_frame = NULL; -	afr_local_t  *local = NULL; +        call_frame_t *main_frame = NULL; +        afr_local_t  *local = NULL; -	local = frame->local; +        local = frame->local; -	LOCK (&frame->lock); -	{ -		if (local->transaction.main_frame) { -			main_frame = local->transaction.main_frame; -		} -		local->transaction.main_frame = NULL; -	} -	UNLOCK (&frame->lock); +        LOCK (&frame->lock); +        { +                if (local->transaction.main_frame) { +                        main_frame = local->transaction.main_frame; +                } +                local->transaction.main_frame = NULL; +        } +        UNLOCK (&frame->lock); -	if (main_frame) { +        if (main_frame) {                  local->cont.unlink.preparent.ia_ino  = local->cont.unlink.parent_ino;                  local->cont.unlink.postparent.ia_ino = local->cont.unlink.parent_ino; -		AFR_STACK_UNWIND (unlink, main_frame, +                AFR_STACK_UNWIND (unlink, main_frame,                                    local->op_ret, local->op_errno,                                    &local->cont.unlink.preparent,                                    &local->cont.unlink.postparent);          } -	return 0; +        return 0;  }  int -afr_unlink_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  -		     int32_t op_ret, int32_t op_errno, struct iatt *preparent, +afr_unlink_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                     int32_t op_ret, int32_t op_errno, struct iatt *preparent,                       struct iatt *postparent)  { -	afr_local_t *   local = NULL; -	afr_private_t * priv  = NULL; +        afr_local_t *   local = NULL; +        afr_private_t * priv  = NULL; -	int call_count  = -1; -	int child_index = (long) cookie; +        int call_count  = -1; +        int child_index = (long) cookie; -	local = frame->local; -	priv  = this->private; +        local = frame->local; +        priv  = this->private; -	LOCK (&frame->lock); -	{ +        LOCK (&frame->lock); +        {                  if (child_index == local->read_child_index) {                          local->read_child_returned = _gf_true;                  } -		if (afr_fop_failed (op_ret, op_errno)) -			afr_transaction_fop_failed (frame, this, child_index); +                if (afr_fop_failed (op_ret, op_errno)) +                        afr_transaction_fop_failed (frame, this, child_index); -		if (op_ret != -1) { -			if (local->success_count == 0) { -				local->op_ret   = op_ret; +                if (op_ret != -1) { +                        if (local->success_count == 0) { +                                local->op_ret   = op_ret;                                  local->cont.unlink.preparent  = *preparent;                                  local->cont.unlink.postparent = *postparent; -			} +                        }                          if (child_index == local->read_child_index) {                                  local->cont.unlink.preparent  = *preparent;                                  local->cont.unlink.postparent = *postparent;                          } -			local->success_count++; -		} +                        local->success_count++; +                } -		local->op_errno = op_errno; -	} -	UNLOCK (&frame->lock); +                local->op_errno = op_errno; +        } +        UNLOCK (&frame->lock); -	call_count = afr_frame_return (frame); +        call_count = afr_frame_return (frame); -	if (call_count == 0) { -		local->transaction.unwind (frame, this); +        if (call_count == 0) { +                local->transaction.unwind (frame, this); -		local->transaction.resume (frame, this); -	} -	 -	return 0; +                local->transaction.resume (frame, this); +        } + +        return 0;  }  int32_t  afr_unlink_wind (call_frame_t *frame, xlator_t *this)  { -	afr_local_t *local = NULL; -	afr_private_t *priv = NULL; - -	int call_count = -1; -	int i = 0; - -	local = frame->local; -	priv  = this->private; - -	call_count = afr_up_children_count (priv->child_count, local->child_up); - -	if (call_count == 0) { -		local->transaction.resume (frame, this); -		return 0; -	} - -	local->call_count = call_count; - -	for (i = 0; i < priv->child_count; i++) {				 -		if (local->child_up[i]) { -			STACK_WIND_COOKIE (frame, afr_unlink_wind_cbk,	 -					   (void *) (long) i, -					   priv->children[i],  -					   priv->children[i]->fops->unlink, -					   &local->loc); -			 -			if (!--call_count) -				break; -		} -	} -	 -	return 0; +        afr_local_t *local = NULL; +        afr_private_t *priv = NULL; + +        int call_count = -1; +        int i = 0; + +        local = frame->local; +        priv  = this->private; + +        call_count = afr_up_children_count (priv->child_count, local->child_up); + +        if (call_count == 0) { +                local->transaction.resume (frame, this); +                return 0; +        } + +        local->call_count = call_count; + +        for (i = 0; i < priv->child_count; i++) { +                if (local->child_up[i]) { +                        STACK_WIND_COOKIE (frame, afr_unlink_wind_cbk, +                                           (void *) (long) i, +                                           priv->children[i], +                                           priv->children[i]->fops->unlink, +                                           &local->loc); + +                        if (!--call_count) +                                break; +                } +        } + +        return 0;  }  int32_t  afr_unlink_done (call_frame_t *frame, xlator_t *this)  { -	afr_local_t * local = frame->local; +        afr_local_t * local = frame->local; + +        local->transaction.unwind (frame, this); -	local->transaction.unwind (frame, this); +        AFR_STACK_DESTROY (frame); -	AFR_STACK_DESTROY (frame); -	 -	return 0; +        return 0;  }  int32_t  afr_unlink (call_frame_t *frame, xlator_t *this, -	    loc_t *loc) +            loc_t *loc)  { -	afr_private_t * priv  = NULL; -	afr_local_t   * local = NULL; -	call_frame_t  * transaction_frame = NULL; +        afr_private_t * priv  = NULL; +        afr_local_t   * local = NULL; +        call_frame_t  * transaction_frame = NULL; -	int ret = -1; +        int ret = -1; -	int op_ret   = -1; -	int op_errno = 0; +        int op_ret   = -1; +        int op_errno = 0; -	VALIDATE_OR_GOTO (frame, out); -	VALIDATE_OR_GOTO (this, out); -	VALIDATE_OR_GOTO (this->private, out); +        VALIDATE_OR_GOTO (frame, out); +        VALIDATE_OR_GOTO (this, out); +        VALIDATE_OR_GOTO (this->private, out); -	priv = this->private; +        priv = this->private; -	transaction_frame = copy_frame (frame); -	if (!transaction_frame) { -		gf_log (this->name, GF_LOG_ERROR, -			"Out of memory."); -		goto out; -	} +        transaction_frame = copy_frame (frame); +        if (!transaction_frame) { +                gf_log (this->name, GF_LOG_ERROR, +                        "Out of memory."); +                goto out; +        } -	ALLOC_OR_GOTO (local, afr_local_t, out); +        ALLOC_OR_GOTO (local, afr_local_t, out); -	ret = AFR_LOCAL_INIT (local, priv); -	if (ret < 0) { -		op_errno = -ret; -		goto out; -	} +        ret = AFR_LOCAL_INIT (local, priv); +        if (ret < 0) { +                op_errno = -ret; +                goto out; +        } -	transaction_frame->local = local; +        transaction_frame->local = local; -	loc_copy (&local->loc, loc); +        loc_copy (&local->loc, loc);          if (loc->parent)                  local->cont.unlink.parent_ino = loc->parent->ino; -	local->transaction.fop    = afr_unlink_wind; -	local->transaction.done   = afr_unlink_done; -	local->transaction.unwind = afr_unlink_unwind; +        local->transaction.fop    = afr_unlink_wind; +        local->transaction.done   = afr_unlink_done; +        local->transaction.unwind = afr_unlink_unwind; -	afr_build_parent_loc (&local->transaction.parent_loc, loc); +        afr_build_parent_loc (&local->transaction.parent_loc, loc); -	local->transaction.main_frame = frame; -	local->transaction.basename = AFR_BASENAME (loc->path); +        local->transaction.main_frame = frame; +        local->transaction.basename = AFR_BASENAME (loc->path); -	afr_transaction (transaction_frame, this, AFR_ENTRY_TRANSACTION); +        afr_transaction (transaction_frame, this, AFR_ENTRY_TRANSACTION); -	op_ret = 0; +        op_ret = 0;  out: -	if (op_ret == -1) { -		if (transaction_frame) -			AFR_STACK_DESTROY (transaction_frame); -		AFR_STACK_UNWIND (unlink, frame, op_ret, op_errno, +        if (op_ret == -1) { +                if (transaction_frame) +                        AFR_STACK_DESTROY (transaction_frame); +                AFR_STACK_UNWIND (unlink, frame, op_ret, op_errno,                                    NULL, NULL); -	} +        } -	return 0; +        return 0;  }  /* }}} */ @@ -1790,204 +1790,203 @@ out:  int  afr_rmdir_unwind (call_frame_t *frame, xlator_t *this)  { -	call_frame_t *main_frame = NULL; -	afr_local_t  *local = NULL; +        call_frame_t *main_frame = NULL; +        afr_local_t  *local = NULL; -	local = frame->local; +        local = frame->local; -	LOCK (&frame->lock); -	{ -		if (local->transaction.main_frame) { -			main_frame = local->transaction.main_frame; -		} -		local->transaction.main_frame = NULL; -	} -	UNLOCK (&frame->lock); +        LOCK (&frame->lock); +        { +                if (local->transaction.main_frame) { +                        main_frame = local->transaction.main_frame; +                } +                local->transaction.main_frame = NULL; +        } +        UNLOCK (&frame->lock); -	if (main_frame) { +        if (main_frame) {                  local->cont.rmdir.preparent.ia_ino  = local->cont.rmdir.parent_ino;                  local->cont.rmdir.postparent.ia_ino = local->cont.rmdir.parent_ino; -		AFR_STACK_UNWIND (rmdir, main_frame, +                AFR_STACK_UNWIND (rmdir, main_frame,                                    local->op_ret, local->op_errno,                                    &local->cont.rmdir.preparent,                                    &local->cont.rmdir.postparent);          } -	return 0; +        return 0;  }  int -afr_rmdir_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  -		    int32_t op_ret, int32_t op_errno, struct iatt *preparent, +afr_rmdir_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                    int32_t op_ret, int32_t op_errno, struct iatt *preparent,                      struct iatt *postparent)  { -	afr_local_t *   local = NULL; -	afr_private_t * priv  = NULL; +        afr_local_t *   local = NULL; +        afr_private_t * priv  = NULL; -	int call_count  = -1; -	int child_index = (long) cookie; +        int call_count  = -1; +        int child_index = (long) cookie;          int read_child  = 0; -	local = frame->local; -	priv = this->private; +        local = frame->local; +        priv = this->private; -	LOCK (&frame->lock); -	{ +        LOCK (&frame->lock); +        {                  if (child_index == read_child) {                          local->read_child_returned = _gf_true;                  } -		if (afr_fop_failed (op_ret, op_errno) && (op_errno != ENOTEMPTY)) -			afr_transaction_fop_failed (frame, this, child_index); +                if (afr_fop_failed (op_ret, op_errno) && (op_errno != ENOTEMPTY)) +                        afr_transaction_fop_failed (frame, this, child_index); -		if (op_ret != -1) { -			if (local->success_count == 0) { -				local->op_ret = op_ret; +                if (op_ret != -1) { +                        if (local->success_count == 0) { +                                local->op_ret = op_ret;                                  local->cont.rmdir.preparent  = *preparent;                                  local->cont.rmdir.postparent = *postparent; -			} +                        }                          if (child_index == read_child) {                                  local->cont.rmdir.preparent  = *preparent;                                  local->cont.rmdir.postparent = *postparent;                          } -			local->success_count++; -		} +                        local->success_count++; +                } -		local->op_errno = op_errno; -	} -	UNLOCK (&frame->lock); +                local->op_errno = op_errno; +        } +        UNLOCK (&frame->lock); -	call_count = afr_frame_return (frame); +        call_count = afr_frame_return (frame); -	if (call_count == 0) { -		local->transaction.unwind (frame, this); -		local->transaction.resume (frame, this); -	} -	 -	return 0; +        if (call_count == 0) { +                local->transaction.unwind (frame, this); +                local->transaction.resume (frame, this); +        } + +        return 0;  }  int  afr_rmdir_wind (call_frame_t *frame, xlator_t *this)  { -	afr_local_t *local = NULL; -	afr_private_t *priv = NULL; - -	int call_count = -1; -	int i = 0; - -	local = frame->local; -	priv  = this->private; - -	call_count = afr_up_children_count (priv->child_count, local->child_up); - -	if (call_count == 0) { -		local->transaction.resume (frame, this); -		return 0; -	} - -	local->call_count = call_count; - -	for (i = 0; i < priv->child_count; i++) {				 -		if (local->child_up[i]) { -			STACK_WIND_COOKIE (frame, afr_rmdir_wind_cbk,	 -					   (void *) (long) i, -					   priv->children[i],  -					   priv->children[i]->fops->rmdir, -					   &local->loc, local->cont.rmdir.flags); - -			if (!--call_count) -				break; -		} -	} -	 -	return 0; +        afr_local_t *local = NULL; +        afr_private_t *priv = NULL; + +        int call_count = -1; +        int i = 0; + +        local = frame->local; +        priv  = this->private; + +        call_count = afr_up_children_count (priv->child_count, local->child_up); + +        if (call_count == 0) { +                local->transaction.resume (frame, this); +                return 0; +        } + +        local->call_count = call_count; + +        for (i = 0; i < priv->child_count; i++) { +                if (local->child_up[i]) { +                        STACK_WIND_COOKIE (frame, afr_rmdir_wind_cbk, +                                           (void *) (long) i, +                                           priv->children[i], +                                           priv->children[i]->fops->rmdir, +                                           &local->loc, local->cont.rmdir.flags); + +                        if (!--call_count) +                                break; +                } +        } + +        return 0;  }  int  afr_rmdir_done (call_frame_t *frame, xlator_t *this)  { -	afr_local_t * local = frame->local; +        afr_local_t * local = frame->local; -	local->transaction.unwind (frame, this); +        local->transaction.unwind (frame, this); -	AFR_STACK_DESTROY (frame); -	 -	return 0; +        AFR_STACK_DESTROY (frame); + +        return 0;  }  int  afr_rmdir (call_frame_t *frame, xlator_t *this, -	   loc_t *loc, int flags) +           loc_t *loc, int flags)  { -	afr_private_t * priv  = NULL; -	afr_local_t   * local = NULL; -	call_frame_t  * transaction_frame = NULL; -	 -	int ret = -1; +        afr_private_t * priv  = NULL; +        afr_local_t   * local = NULL; +        call_frame_t  * transaction_frame = NULL; + +        int ret = -1; -	int op_ret   = -1; -	int op_errno = 0; +        int op_ret   = -1; +        int op_errno = 0; -	VALIDATE_OR_GOTO (frame, out); -	VALIDATE_OR_GOTO (this, out); -	VALIDATE_OR_GOTO (this->private, out); +        VALIDATE_OR_GOTO (frame, out); +        VALIDATE_OR_GOTO (this, out); +        VALIDATE_OR_GOTO (this->private, out); -	priv = this->private; +        priv = this->private; -	transaction_frame = copy_frame (frame); -	if (!transaction_frame) { -		gf_log (this->name, GF_LOG_ERROR, -			"Out of memory."); -		goto out; -	} +        transaction_frame = copy_frame (frame); +        if (!transaction_frame) { +                gf_log (this->name, GF_LOG_ERROR, +                        "Out of memory."); +                goto out; +        } -	ALLOC_OR_GOTO (local, afr_local_t, out); +        ALLOC_OR_GOTO (local, afr_local_t, out); -	ret = AFR_LOCAL_INIT (local, priv); -	if (ret < 0) { -		op_errno = -ret; -		goto out; -	} +        ret = AFR_LOCAL_INIT (local, priv); +        if (ret < 0) { +                op_errno = -ret; +                goto out; +        } -	transaction_frame->local = local; +        transaction_frame->local = local;          local->cont.rmdir.flags = flags; -	loc_copy (&local->loc, loc); +        loc_copy (&local->loc, loc);          if (loc->parent)                  local->cont.rmdir.parent_ino = loc->parent->ino; -	local->transaction.fop    = afr_rmdir_wind; -	local->transaction.done   = afr_rmdir_done; -	local->transaction.unwind = afr_rmdir_unwind; +        local->transaction.fop    = afr_rmdir_wind; +        local->transaction.done   = afr_rmdir_done; +        local->transaction.unwind = afr_rmdir_unwind; -	afr_build_parent_loc (&local->transaction.parent_loc, loc); +        afr_build_parent_loc (&local->transaction.parent_loc, loc); -	local->transaction.main_frame = frame; -	local->transaction.basename = AFR_BASENAME (loc->path); +        local->transaction.main_frame = frame; +        local->transaction.basename = AFR_BASENAME (loc->path); -	afr_transaction (transaction_frame, this, AFR_ENTRY_TRANSACTION); +        afr_transaction (transaction_frame, this, AFR_ENTRY_TRANSACTION); -	op_ret = 0; +        op_ret = 0;  out: -	if (op_ret == -1) { -		if (transaction_frame) -			AFR_STACK_DESTROY (transaction_frame); -		AFR_STACK_UNWIND (rmdir, frame, op_ret, op_errno, +        if (op_ret == -1) { +                if (transaction_frame) +                        AFR_STACK_DESTROY (transaction_frame); +                AFR_STACK_UNWIND (rmdir, frame, op_ret, op_errno,                                    NULL, NULL); -	} +        } -	return 0; +        return 0;  }  /* }}} */ - diff --git a/xlators/cluster/afr/src/afr-inode-write.c b/xlators/cluster/afr/src/afr-inode-write.c index 050a4f0e9ef..669a51d7567 100644 --- a/xlators/cluster/afr/src/afr-inode-write.c +++ b/xlators/cluster/afr/src/afr-inode-write.c @@ -1,20 +1,20 @@  /* -   Copyright (c) 2007-2010 Gluster, Inc. <http://www.gluster.com> -   This file is part of GlusterFS. - -   GlusterFS is free software; you can redistribute it and/or modify -   it under the terms of the GNU Affero General Public License as published -   by the Free Software Foundation; either version 3 of the License, -   or (at your option) any later version. - -   GlusterFS is distributed in the hope that it will be useful, but -   WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -   Affero General Public License for more details. - -   You should have received a copy of the GNU Affero General Public License -   along with this program.  If not, see -   <http://www.gnu.org/licenses/>. +  Copyright (c) 2007-2010 Gluster, Inc. <http://www.gluster.com> +  This file is part of GlusterFS. + +  GlusterFS is free software; you can redistribute it and/or modify +  it under the terms of the GNU Affero General Public License as published +  by the Free Software Foundation; either version 3 of the License, +  or (at your option) any later version. + +  GlusterFS is distributed in the hope that it will be useful, but +  WITHOUT ANY WARRANTY; without even the implied warranty of +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +  Affero General Public License for more details. + +  You should have received a copy of the GNU Affero General Public License +  along with this program.  If not, see +  <http://www.gnu.org/licenses/>.  */ @@ -1036,8 +1036,8 @@ afr_fsetattr_unwind (call_frame_t *frame, xlator_t *this)  int  afr_fsetattr_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                      int32_t op_ret, int32_t op_errno, -                      struct iatt *preop, struct iatt *postop) +                       int32_t op_ret, int32_t op_errno, +                       struct iatt *preop, struct iatt *postop)  {          afr_local_t *   local = NULL;          afr_private_t * priv  = NULL; @@ -1241,7 +1241,7 @@ afr_setxattr_unwind (call_frame_t *frame, xlator_t *this)          if (main_frame) {                  AFR_STACK_UNWIND (setxattr, main_frame,                                    local->op_ret, local->op_errno) -        } +                        }          return 0;  } @@ -1429,7 +1429,7 @@ afr_removexattr_unwind (call_frame_t *frame, xlator_t *this)          if (main_frame) {                  AFR_STACK_UNWIND (removexattr, main_frame,                                    local->op_ret, local->op_errno) -        } +                        }          return 0;  } diff --git a/xlators/cluster/afr/src/afr-lk-common.c b/xlators/cluster/afr/src/afr-lk-common.c index d2f7579fc42..632c8b7c424 100644 --- a/xlators/cluster/afr/src/afr-lk-common.c +++ b/xlators/cluster/afr/src/afr-lk-common.c @@ -431,8 +431,8 @@ is_afr_lock_transaction (afr_local_t *local)          int ret = 0;          switch (local->transaction.type) { -	case AFR_DATA_TRANSACTION: -	case AFR_METADATA_TRANSACTION: +        case AFR_DATA_TRANSACTION: +        case AFR_METADATA_TRANSACTION:                  ret = 1;                  break; @@ -497,17 +497,17 @@ initialize_inodelk_variables (call_frame_t *frame, xlator_t *this)  loc_t *  lower_path (loc_t *l1, const char *b1, loc_t *l2, const char *b2)  { -	int ret = 0; +        int ret = 0; -	ret = strcmp (l1->path, l2->path); +        ret = strcmp (l1->path, l2->path); -	if (ret == 0) -		ret = strcmp (b1, b2); +        if (ret == 0) +                ret = strcmp (b1, b2); -	if (ret <= 0) -		return l1; -	else -		return l2; +        if (ret <= 0) +                return l1; +        else +                return l2;  }  int @@ -530,26 +530,26 @@ static int32_t  afr_unlock_common_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                         int32_t op_ret, int32_t op_errno)  { -	afr_local_t         *local    = NULL; +        afr_local_t         *local    = NULL;          afr_internal_lock_t *int_lock = NULL; -	int call_count = 0; +        int call_count = 0; -	local    = frame->local; +        local    = frame->local;          int_lock = &local->internal_lock; -	LOCK (&frame->lock); -	{ -		call_count = --int_lock->lk_call_count; -	} -	UNLOCK (&frame->lock); +        LOCK (&frame->lock); +        { +                call_count = --int_lock->lk_call_count; +        } +        UNLOCK (&frame->lock); -	if (call_count == 0) { +        if (call_count == 0) {                  gf_log (this->name, GF_LOG_TRACE,                          "All internal locks unlocked");                  int_lock->lock_cbk (frame, this);          } -	return 0; +        return 0;  }  static int32_t @@ -647,7 +647,7 @@ afr_unlock_entrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                          int32_t op_ret, int32_t op_errno)  {          afr_trace_entrylk_out (frame, AFR_ENTRYLK_TRANSACTION, -                              AFR_UNLOCK_OP, NULL, op_ret, +                               AFR_UNLOCK_OP, NULL, op_ret,                                 op_errno, (long) cookie);          afr_unlock_common_cbk (frame, cookie, this, op_ret, op_errno); @@ -711,38 +711,38 @@ out:  static int32_t  afr_lock_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -	      int32_t op_ret, int32_t op_errno) +              int32_t op_ret, int32_t op_errno)  {          afr_internal_lock_t *int_lock = NULL; -	afr_local_t         *local    = NULL; -	afr_private_t       *priv     = NULL; +        afr_local_t         *local    = NULL; +        afr_private_t       *priv     = NULL; -	int done = 0; -	int child_index = (long) cookie; +        int done = 0; +        int child_index = (long) cookie; -	local    = frame->local; +        local    = frame->local;          int_lock = &local->internal_lock; -	priv     = this->private; - -	LOCK (&frame->lock); -	{ -		if (op_ret == -1) { -			if (op_errno == ENOSYS) { -				/* return ENOTSUP */ -				gf_log (this->name, GF_LOG_ERROR, -					"subvolume does not support locking. " -					"please load features/posix-locks xlator on server"); -				local->op_ret = op_ret; +        priv     = this->private; + +        LOCK (&frame->lock); +        { +                if (op_ret == -1) { +                        if (op_errno == ENOSYS) { +                                /* return ENOTSUP */ +                                gf_log (this->name, GF_LOG_ERROR, +                                        "subvolume does not support locking. " +                                        "please load features/posix-locks xlator on server"); +                                local->op_ret = op_ret;                                  int_lock->lock_op_ret = op_ret; -				done = 1; -			} +                                done = 1; +                        } -			local->child_up[child_index] = 0; -			local->op_errno              = op_errno; +                        local->child_up[child_index] = 0; +                        local->op_errno              = op_errno;                          int_lock->lock_op_errno      = op_errno; -		} -	} -	UNLOCK (&frame->lock); +                } +        } +        UNLOCK (&frame->lock);          if ((op_ret == -1) &&              (op_errno == ENOSYS)) { @@ -756,7 +756,7 @@ afr_lock_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  afr_lock_blocking (frame, this, child_index + 1);          } -	return 0; +        return 0;  }  static int32_t @@ -875,8 +875,8 @@ afr_copy_locked_nodes (call_frame_t *frame, xlator_t *this)          int_lock = &local->internal_lock;          switch (local->transaction.type) { -	case AFR_DATA_TRANSACTION: -	case AFR_METADATA_TRANSACTION: +        case AFR_DATA_TRANSACTION: +        case AFR_METADATA_TRANSACTION:                  memcpy (int_lock->inode_locked_nodes,                          int_lock->locked_nodes,                          priv->child_count); @@ -901,24 +901,24 @@ afr_lock_blocking (call_frame_t *frame, xlator_t *this, int child_index)  {          afr_internal_lock_t *int_lock    = NULL;          afr_local_t         *local       = NULL; -	afr_private_t       *priv        = NULL; +        afr_private_t       *priv        = NULL;          afr_fd_ctx_t        *fd_ctx      = NULL; -	loc_t               *lower       = NULL; -	loc_t               *higher      = NULL; -	const char          *lower_name  = NULL; -	const char          *higher_name = NULL; +        loc_t               *lower       = NULL; +        loc_t               *higher      = NULL; +        const char          *lower_name  = NULL; +        const char          *higher_name = NULL; -	struct gf_flock flock; +        struct gf_flock flock;          uint64_t ctx;          int ret = 0; -	local    = frame->local; +        local    = frame->local;          int_lock = &local->internal_lock; -	priv     = this->private; +        priv     = this->private; -	flock.l_start = int_lock->lk_flock.l_start; -	flock.l_len   = int_lock->lk_flock.l_len; -	flock.l_type  = int_lock->lk_flock.l_type; +        flock.l_start = int_lock->lk_flock.l_start; +        flock.l_len   = int_lock->lk_flock.l_len; +        flock.l_type  = int_lock->lk_flock.l_type;          if (local->fd) {                  ret = fd_ctx_get (local->fd, this, &ctx); @@ -957,31 +957,31 @@ afr_lock_blocking (call_frame_t *frame, xlator_t *this, int child_index)                          child_index++;          } -	if ((child_index == priv->child_count) && -	    int_lock->lock_count == 0) { +        if ((child_index == priv->child_count) && +            int_lock->lock_count == 0) { -		gf_log (this->name, GF_LOG_DEBUG, -			"unable to lock on even one child"); +                gf_log (this->name, GF_LOG_DEBUG, +                        "unable to lock on even one child"); -		local->op_ret           = -1; +                local->op_ret           = -1;                  int_lock->lock_op_ret   = -1; -		local->op_errno         = EAGAIN; +                local->op_errno         = EAGAIN;                  int_lock->lock_op_errno = EAGAIN;                  afr_copy_locked_nodes (frame, this);                  afr_unlock(frame, this); -		return 0; +                return 0; -	} +        } -	if ((child_index == priv->child_count) -	    || (int_lock->lock_count == -		afr_up_children_count (priv->child_count, +        if ((child_index == priv->child_count) +            || (int_lock->lock_count == +                afr_up_children_count (priv->child_count,                                         local->child_up))) { -		/* we're done locking */ +                /* we're done locking */                  gf_log (this->name, GF_LOG_DEBUG,                          "we're done locking"); @@ -990,105 +990,105 @@ afr_lock_blocking (call_frame_t *frame, xlator_t *this, int child_index)                  int_lock->lock_op_ret = 0;                  int_lock->lock_cbk (frame, this); -		return 0; -	} +                return 0; +        } -	switch (local->transaction.type) { -	case AFR_DATA_TRANSACTION: -	case AFR_METADATA_TRANSACTION: +        switch (local->transaction.type) { +        case AFR_DATA_TRANSACTION: +        case AFR_METADATA_TRANSACTION: -		if (local->fd) { +                if (local->fd) {                          afr_trace_inodelk_in (frame, AFR_INODELK_TRANSACTION,                                                AFR_LOCK_OP, &flock, F_SETLKW,                                                child_index); -			STACK_WIND_COOKIE (frame, afr_blocking_inodelk_cbk, -					   (void *) (long) child_index, -					   priv->children[child_index], -					   priv->children[child_index]->fops->finodelk, -					   this->name, local->fd, +                        STACK_WIND_COOKIE (frame, afr_blocking_inodelk_cbk, +                                           (void *) (long) child_index, +                                           priv->children[child_index], +                                           priv->children[child_index]->fops->finodelk, +                                           this->name, local->fd,                                             F_SETLKW, &flock); -		} else { +                } else {                          afr_trace_inodelk_in (frame, AFR_INODELK_TRANSACTION,                                                AFR_LOCK_OP, &flock, F_SETLKW,                                                child_index); -			STACK_WIND_COOKIE (frame, afr_blocking_inodelk_cbk, -					   (void *) (long) child_index, -					   priv->children[child_index], -					   priv->children[child_index]->fops->inodelk, -					   this->name, &local->loc, +                        STACK_WIND_COOKIE (frame, afr_blocking_inodelk_cbk, +                                           (void *) (long) child_index, +                                           priv->children[child_index], +                                           priv->children[child_index]->fops->inodelk, +                                           this->name, &local->loc,                                             F_SETLKW, &flock); -		} +                } -		break; +                break; -	case AFR_ENTRY_RENAME_TRANSACTION: -	{ -		lower = lower_path (&local->transaction.parent_loc, -				    local->transaction.basename, -				    &local->transaction.new_parent_loc, -				    local->transaction.new_basename); +        case AFR_ENTRY_RENAME_TRANSACTION: +        { +                lower = lower_path (&local->transaction.parent_loc, +                                    local->transaction.basename, +                                    &local->transaction.new_parent_loc, +                                    local->transaction.new_basename); -		lower_name = (lower == &local->transaction.parent_loc ? -			      local->transaction.basename : -			      local->transaction.new_basename); +                lower_name = (lower == &local->transaction.parent_loc ? +                              local->transaction.basename : +                              local->transaction.new_basename); -		higher = (lower == &local->transaction.parent_loc ? -			  &local->transaction.new_parent_loc : -			  &local->transaction.parent_loc); +                higher = (lower == &local->transaction.parent_loc ? +                          &local->transaction.new_parent_loc : +                          &local->transaction.parent_loc); -		higher_name = (higher == &local->transaction.parent_loc ? -			       local->transaction.basename : -			       local->transaction.new_basename); +                higher_name = (higher == &local->transaction.parent_loc ? +                               local->transaction.basename : +                               local->transaction.new_basename);                  afr_trace_entrylk_in (frame, AFR_ENTRYLK_TRANSACTION,                                        AFR_LOCK_OP, lower_name, child_index); -		STACK_WIND_COOKIE (frame, afr_lock_lower_cbk, -				   (void *) (long) child_index, -				   priv->children[child_index], -				   priv->children[child_index]->fops->entrylk, -				   this->name, lower, lower_name, -				   ENTRYLK_LOCK, ENTRYLK_WRLCK); +                STACK_WIND_COOKIE (frame, afr_lock_lower_cbk, +                                   (void *) (long) child_index, +                                   priv->children[child_index], +                                   priv->children[child_index]->fops->entrylk, +                                   this->name, lower, lower_name, +                                   ENTRYLK_LOCK, ENTRYLK_WRLCK); -		break; -	} +                break; +        } -	case AFR_ENTRY_TRANSACTION: -		if (local->fd) { +        case AFR_ENTRY_TRANSACTION: +                if (local->fd) {                          afr_trace_entrylk_in (frame, AFR_ENTRYLK_TRANSACTION,                                                AFR_LOCK_OP, local->transaction.basename,                                                child_index); -			STACK_WIND_COOKIE (frame, afr_blocking_entrylk_cbk, -					   (void *) (long) child_index, -					   priv->children[child_index], -					   priv->children[child_index]->fops->fentrylk, -					   this->name, local->fd, -					   local->transaction.basename, -					   ENTRYLK_LOCK, ENTRYLK_WRLCK); -		} else { +                        STACK_WIND_COOKIE (frame, afr_blocking_entrylk_cbk, +                                           (void *) (long) child_index, +                                           priv->children[child_index], +                                           priv->children[child_index]->fops->fentrylk, +                                           this->name, local->fd, +                                           local->transaction.basename, +                                           ENTRYLK_LOCK, ENTRYLK_WRLCK); +                } else {                          afr_trace_entrylk_in (frame, AFR_ENTRYLK_TRANSACTION,                                                AFR_LOCK_OP, local->transaction.basename,                                                child_index); -			STACK_WIND_COOKIE (frame, afr_blocking_entrylk_cbk, -					   (void *) (long) child_index, -					   priv->children[child_index], -					   priv->children[child_index]->fops->entrylk, -					   this->name, +                        STACK_WIND_COOKIE (frame, afr_blocking_entrylk_cbk, +                                           (void *) (long) child_index, +                                           priv->children[child_index], +                                           priv->children[child_index]->fops->entrylk, +                                           this->name,                                             &local->transaction.parent_loc, -					   local->transaction.basename, -					   ENTRYLK_LOCK, ENTRYLK_WRLCK); -		} +                                           local->transaction.basename, +                                           ENTRYLK_LOCK, ENTRYLK_WRLCK); +                } -		break; -	} +                break; +        } -	return 0; +        return 0;  } @@ -1105,8 +1105,8 @@ afr_blocking_lock (call_frame_t *frame, xlator_t *this)          int_lock = &local->internal_lock;          switch (local->transaction.type) { -	case AFR_DATA_TRANSACTION: -	case AFR_METADATA_TRANSACTION: +        case AFR_DATA_TRANSACTION: +        case AFR_METADATA_TRANSACTION:                  initialize_inodelk_variables (frame, this);                  break; @@ -1126,15 +1126,15 @@ afr_nonblocking_entrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                               int32_t op_ret, int32_t op_errno)  {          afr_internal_lock_t *int_lock = NULL; -	afr_local_t         *local    = NULL; -	afr_private_t       *priv     = NULL; +        afr_local_t         *local    = NULL; +        afr_private_t       *priv     = NULL;          int call_count          = 0; -	int child_index         = (long) cookie; +        int child_index         = (long) cookie; -	local    = frame->local; +        local    = frame->local;          int_lock = &local->internal_lock; -	priv     = this->private; +        priv     = this->private;          afr_trace_entrylk_out (frame, AFR_ENTRYLK_TRANSACTION,                                 AFR_LOCK_OP, NULL, op_ret, @@ -1147,22 +1147,22 @@ afr_nonblocking_entrylk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          UNLOCK (&frame->lock);          if (op_ret < 0 ) { -			if (op_errno == ENOSYS) { -				/* return ENOTSUP */ -				gf_log (this->name, GF_LOG_ERROR, -					"subvolume does not support locking. " -					"please load features/posix-locks xlator on server"); -				local->op_ret         = op_ret; -                                int_lock->lock_op_ret = op_ret; +                if (op_errno == ENOSYS) { +                        /* return ENOTSUP */ +                        gf_log (this->name, GF_LOG_ERROR, +                                "subvolume does not support locking. " +                                "please load features/posix-locks xlator on server"); +                        local->op_ret         = op_ret; +                        int_lock->lock_op_ret = op_ret; -                                local->child_up[child_index] = 0; -                                int_lock->lock_op_errno      = op_errno; -                                local->op_errno              = op_errno; -                        } +                        local->child_up[child_index] = 0; +                        int_lock->lock_op_errno      = op_errno; +                        local->op_errno              = op_errno; +                }          } else if (op_ret == 0) { -                        int_lock->entry_locked_nodes[child_index] -                                |= LOCKED_YES; -                        int_lock->entrylk_lock_count++; +                int_lock->entry_locked_nodes[child_index] +                        |= LOCKED_YES; +                int_lock->entrylk_lock_count++;          }          if (call_count == 0) { @@ -1292,15 +1292,15 @@ afr_nonblocking_inodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                               int32_t op_ret, int32_t op_errno)  {          afr_internal_lock_t *int_lock = NULL; -	afr_local_t         *local    = NULL; -	afr_private_t       *priv     = NULL; +        afr_local_t         *local    = NULL; +        afr_private_t       *priv     = NULL;          int call_count  = 0; -	int child_index = (long) cookie; +        int child_index = (long) cookie; -	local    = frame->local; +        local    = frame->local;          int_lock = &local->internal_lock; -	priv     = this->private; +        priv     = this->private;          afr_trace_inodelk_out (frame, AFR_INODELK_NB_TRANSACTION,                                 AFR_LOCK_OP, NULL, op_ret, @@ -1313,21 +1313,21 @@ afr_nonblocking_inodelk_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          UNLOCK (&frame->lock);          if (op_ret < 0 ) { -			if (op_errno == ENOSYS) { -				/* return ENOTSUP */ -				gf_log (this->name, GF_LOG_ERROR, -					"subvolume does not support locking. " -					"please load features/posix-locks xlator on server"); -				local->op_ret                = op_ret; -                                int_lock->lock_op_ret        = op_ret; -                                local->child_up[child_index] = 0; -                                int_lock->lock_op_errno      = op_errno; -                                local->op_errno              = op_errno; -                        } +                if (op_errno == ENOSYS) { +                        /* return ENOTSUP */ +                        gf_log (this->name, GF_LOG_ERROR, +                                "subvolume does not support locking. " +                                "please load features/posix-locks xlator on server"); +                        local->op_ret                = op_ret; +                        int_lock->lock_op_ret        = op_ret; +                        local->child_up[child_index] = 0; +                        int_lock->lock_op_errno      = op_errno; +                        local->op_errno              = op_errno; +                }          } else if (op_ret == 0) { -                        int_lock->inode_locked_nodes[child_index] -                                |= LOCKED_YES; -                        int_lock->inodelk_lock_count++; +                int_lock->inode_locked_nodes[child_index] +                        |= LOCKED_YES; +                int_lock->inodelk_lock_count++;          }          if (call_count == 0) { @@ -1373,9 +1373,9 @@ afr_nonblocking_inodelk (call_frame_t *frame, xlator_t *this)          int_lock = &local->internal_lock;          priv     = this->private; -	flock.l_start = int_lock->lk_flock.l_start; -	flock.l_len   = int_lock->lk_flock.l_len; -	flock.l_type  = int_lock->lk_flock.l_type; +        flock.l_start = int_lock->lk_flock.l_start; +        flock.l_len   = int_lock->lk_flock.l_len; +        flock.l_type  = int_lock->lk_flock.l_type;          initialize_inodelk_variables (frame, this); @@ -1572,10 +1572,10 @@ afr_post_unlock_lower_cbk (call_frame_t *frame, xlator_t *this)  {          afr_internal_lock_t *int_lock    = NULL;          afr_local_t         *local       = NULL; -	loc_t               *lower       = NULL; -	loc_t               *higher      = NULL; -	const char          *lower_name  = NULL; -	const char          *higher_name = NULL; +        loc_t               *lower       = NULL; +        loc_t               *higher      = NULL; +        const char          *lower_name  = NULL; +        const char          *higher_name = NULL;          local    = frame->local;          int_lock = &local->internal_lock; @@ -1616,10 +1616,10 @@ afr_rename_unlock (call_frame_t *frame, xlator_t *this)  {          afr_internal_lock_t *int_lock    = NULL;          afr_local_t         *local       = NULL; -	loc_t               *lower       = NULL; -	loc_t               *higher      = NULL; -	const char          *lower_name  = NULL; -	const char          *higher_name = NULL; +        loc_t               *lower       = NULL; +        loc_t               *higher      = NULL; +        const char          *lower_name  = NULL; +        const char          *higher_name = NULL;          local    = frame->local;          int_lock = &local->internal_lock; @@ -2111,7 +2111,7 @@ afr_attempt_lock_recovery (xlator_t *this, int32_t child_index)          afr_private_t   *priv      = NULL;          afr_local_t     *local     = NULL;          afr_locked_fd_t *locked_fd = NULL; -       afr_locked_fd_t  *tmp       = NULL; +        afr_locked_fd_t  *tmp       = NULL;          int              ret       = 0;          struct list_head locks_list; diff --git a/xlators/cluster/afr/src/afr-self-heal-common.c b/xlators/cluster/afr/src/afr-self-heal-common.c index aba43530fdd..4cf09a656aa 100644 --- a/xlators/cluster/afr/src/afr-self-heal-common.c +++ b/xlators/cluster/afr/src/afr-self-heal-common.c @@ -34,12 +34,12 @@  int  afr_sh_select_source (int sources[], int child_count)  { -	int i; -	for (i = 0; i < child_count; i++) -		if (sources[i]) -			return i; +        int i; +        for (i = 0; i < child_count; i++) +                if (sources[i]) +                        return i; -	return -1; +        return -1;  } @@ -50,82 +50,82 @@ afr_sh_select_source (int sources[], int child_count)  int  afr_sh_sink_count (int sources[], int child_count)  { -	int i; -	int sinks = 0; -	for (i = 0; i < child_count; i++) -		if (!sources[i]) -			sinks++; -	return sinks; +        int i; +        int sinks = 0; +        for (i = 0; i < child_count; i++) +                if (!sources[i]) +                        sinks++; +        return sinks;  }  int  afr_sh_source_count (int sources[], int child_count)  { -	int i; -	int nsource = 0; +        int i; +        int nsource = 0; -	for (i = 0; i < child_count; i++) -		if (sources[i]) -			nsource++; -	return nsource; +        for (i = 0; i < child_count; i++) +                if (sources[i]) +                        nsource++; +        return nsource;  }  int  afr_sh_supress_errenous_children (int sources[], int child_errno[], -				  int child_count) +                                  int child_count)  { -	int i = 0; +        int i = 0; -	for (i = 0; i < child_count; i++) { -		if (child_errno[i] && sources[i]) { -			sources[i] = 0; -		} -	} +        for (i = 0; i < child_count; i++) { +                if (child_errno[i] && sources[i]) { +                        sources[i] = 0; +                } +        } -	return 0; +        return 0;  }  void  afr_sh_print_pending_matrix (int32_t *pending_matrix[], xlator_t *this)  { -	afr_private_t * priv = this->private; +        afr_private_t * priv = this->private; -	char *buf = NULL; -	char *ptr = NULL; +        char *buf = NULL; +        char *ptr = NULL; -	int i, j; +        int i, j;          /* 10 digits per entry + 1 space + '[' and ']' */ -	buf = GF_MALLOC (priv->child_count * 11 + 8, gf_afr_mt_char); - -	for (i = 0; i < priv->child_count; i++) { -		ptr = buf; -		ptr += sprintf (ptr, "[ "); -		for (j = 0; j < priv->child_count; j++) { -			ptr += sprintf (ptr, "%d ", pending_matrix[i][j]); -		} -		sprintf (ptr, "]"); -		gf_log (this->name, GF_LOG_TRACE, -			"pending_matrix: %s", buf); -	} - -	GF_FREE (buf); +        buf = GF_MALLOC (priv->child_count * 11 + 8, gf_afr_mt_char); + +        for (i = 0; i < priv->child_count; i++) { +                ptr = buf; +                ptr += sprintf (ptr, "[ "); +                for (j = 0; j < priv->child_count; j++) { +                        ptr += sprintf (ptr, "%d ", pending_matrix[i][j]); +                } +                sprintf (ptr, "]"); +                gf_log (this->name, GF_LOG_TRACE, +                        "pending_matrix: %s", buf); +        } + +        GF_FREE (buf);  }  void  afr_sh_build_pending_matrix (afr_private_t *priv,                               int32_t *pending_matrix[], dict_t *xattr[], -			     int child_count, afr_transaction_type type) +                             int child_count, afr_transaction_type type)  {          int i, j, k;          /* Indexable by result of afr_index_for_transaction_type(): 0 -- 2. */ -	    int32_t pending[3]; -	    void *pending_raw = NULL; -	    int ret = -1; +        int32_t pending[3]; +        void *pending_raw = NULL; +        int ret = -1;          unsigned char *ignorant_subvols = NULL; @@ -144,7 +144,7 @@ afr_sh_build_pending_matrix (afr_private_t *priv,                  for (j = 0; j < child_count; j++) {                          ret = dict_get_ptr (xattr[i], priv->pending_key[j], -                                             &pending_raw); +                                            &pending_raw);                          if (ret != 0) {                                  /* @@ -466,7 +466,7 @@ int  afr_sh_mark_sources (afr_self_heal_t *sh, int child_count,                       afr_self_heal_type type)  { -	int i = 0; +        int i = 0;          int32_t ** pending_matrix;          int *      sources; @@ -476,7 +476,7 @@ afr_sh_mark_sources (afr_self_heal_t *sh, int child_count,          pending_matrix = sh->pending_matrix;          sources        = sh->sources; -	int nsources = 0; +        int nsources = 0;          /* stores the 'characters' (innocent, fool, wise) of the nodes */          afr_node_character * @@ -484,10 +484,10 @@ afr_sh_mark_sources (afr_self_heal_t *sh, int child_count,                                          child_count,                                          gf_afr_mt_afr_node_character) ; -	/* start clean */ -	for (i = 0; i < child_count; i++) { -		sources[i] = 0; -	} +        /* start clean */ +        for (i = 0; i < child_count; i++) { +                sources[i] = 0; +        }          for (i = 0; i < child_count; i++) {                  if (afr_sh_is_innocent (pending_matrix[i], child_count)) { @@ -547,7 +547,7 @@ afr_sh_mark_sources (afr_self_heal_t *sh, int child_count,  out:          GF_FREE (characters); -	return nsources; +        return nsources;  } @@ -578,7 +578,7 @@ afr_sh_pending_to_delta (afr_private_t *priv, dict_t **xattr,                  for (j = 0; j < child_count; j++) {                          ret = dict_get_ptr (xattr[i], priv->pending_key[j], -                                             &pending_raw); +                                            &pending_raw);                          if (ret < 0)                                  gf_log ("afr_sh_pending_to_delta",                                          GF_LOG_DEBUG, @@ -603,28 +603,28 @@ afr_sh_pending_to_delta (afr_private_t *priv, dict_t **xattr,  int  afr_sh_delta_to_xattr (afr_private_t *priv,                         int32_t *delta_matrix[], dict_t *xattr[], -		       int child_count, afr_transaction_type type) +                       int child_count, afr_transaction_type type)  { -	int i = 0; -	int j = 0; +        int i = 0; +        int j = 0;          int k = 0; -	int ret = 0; +        int ret = 0; -	int32_t *pending = 0; +        int32_t *pending = 0; -	for (i = 0; i < child_count; i++) { -		if (!xattr[i]) -			continue; +        for (i = 0; i < child_count; i++) { +                if (!xattr[i]) +                        continue; -		for (j = 0; j < child_count; j++) { +                for (j = 0; j < child_count; j++) {                          pending = GF_CALLOC (sizeof (int32_t), 3,                                               gf_afr_mt_int32_t);                          /* 3 = data+metadata+entry */                          k = afr_index_for_transaction_type (type); -			pending[k] = hton32 (delta_matrix[i][j]); +                        pending[k] = hton32 (delta_matrix[i][j]);                          ret = dict_set_bin (xattr[i], priv->pending_key[j],                                              pending, @@ -633,9 +633,9 @@ afr_sh_delta_to_xattr (afr_private_t *priv,                                  gf_log ("afr_sh_delta_to_xattr",                                          GF_LOG_WARNING,                                          "Unable to set dict value."); -		} -	} -	return 0; +                } +        } +        return 0;  } @@ -655,7 +655,7 @@ afr_sh_has_metadata_pending (dict_t *xattr, int child_count, xlator_t *this)          for (i = 0; i < priv->child_count; i++) {                  ret = dict_get_ptr (xattr, priv->pending_key[i], -                                     &pending_raw); +                                    &pending_raw);                  if (ret != 0)                          return 0; @@ -667,7 +667,7 @@ afr_sh_has_metadata_pending (dict_t *xattr, int child_count, xlator_t *this)                          return 1;          } -	return 0; +        return 0;  } @@ -687,7 +687,7 @@ afr_sh_has_data_pending (dict_t *xattr, int child_count, xlator_t *this)          for (i = 0; i < priv->child_count; i++) {                  ret = dict_get_ptr (xattr, priv->pending_key[i], -                                     &pending_raw); +                                    &pending_raw);                  if (ret != 0)                          return 0; @@ -699,7 +699,7 @@ afr_sh_has_data_pending (dict_t *xattr, int child_count, xlator_t *this)                          return 1;          } -	return 0; +        return 0;  } @@ -719,7 +719,7 @@ afr_sh_has_entry_pending (dict_t *xattr, int child_count, xlator_t *this)          for (i = 0; i < priv->child_count; i++) {                  ret = dict_get_ptr (xattr, priv->pending_key[i], -                                     &pending_raw); +                                    &pending_raw);                  if (ret != 0)                          return 0; @@ -731,7 +731,7 @@ afr_sh_has_entry_pending (dict_t *xattr, int child_count, xlator_t *this)                          return 1;          } -	return 0; +        return 0;  } @@ -742,54 +742,54 @@ afr_sh_has_entry_pending (dict_t *xattr, int child_count, xlator_t *this)  int  afr_sh_is_matrix_zero (int32_t *pending_matrix[], int child_count)  { -	int i, j; +        int i, j; -	for (i = 0; i < child_count; i++) -		for (j = 0; j < child_count; j++) -			if (pending_matrix[i][j]) -				return 0; -	return 1; +        for (i = 0; i < child_count; i++) +                for (j = 0; j < child_count; j++) +                        if (pending_matrix[i][j]) +                                return 0; +        return 1;  }  int  afr_sh_missing_entries_done (call_frame_t *frame, xlator_t *this)  { -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; -	afr_private_t   *priv = NULL; -	int              i = 0; +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; +        afr_private_t   *priv = NULL; +        int              i = 0; -	local = frame->local; -	sh = &local->self_heal; -	priv = this->private; +        local = frame->local; +        sh = &local->self_heal; +        priv = this->private; -//	memset (sh->child_errno, 0, sizeof (int) * priv->child_count); -	memset (sh->buf, 0, sizeof (struct iatt) * priv->child_count); +//      memset (sh->child_errno, 0, sizeof (int) * priv->child_count); +        memset (sh->buf, 0, sizeof (struct iatt) * priv->child_count);          for (i = 0; i < priv->child_count; i++) {                  sh->locked_nodes[i] = 0;          } -	for (i = 0; i < priv->child_count; i++) { -		if (sh->xattr[i]) -			dict_unref (sh->xattr[i]); -		sh->xattr[i] = NULL; -	} - -	if (local->govinda_gOvinda) { -		gf_log (this->name, GF_LOG_TRACE, -			"aborting selfheal of %s", -			local->loc.path); -		sh->completion_cbk (frame, this); -	} else { -		gf_log (this->name, GF_LOG_TRACE, -			"proceeding to metadata check on %s", -			local->loc.path); -		afr_self_heal_metadata (frame, this); -	} - -	return 0; +        for (i = 0; i < priv->child_count; i++) { +                if (sh->xattr[i]) +                        dict_unref (sh->xattr[i]); +                sh->xattr[i] = NULL; +        } + +        if (local->govinda_gOvinda) { +                gf_log (this->name, GF_LOG_TRACE, +                        "aborting selfheal of %s", +                        local->loc.path); +                sh->completion_cbk (frame, this); +        } else { +                gf_log (this->name, GF_LOG_TRACE, +                        "proceeding to metadata check on %s", +                        local->loc.path); +                afr_self_heal_metadata (frame, this); +        } + +        return 0;  } @@ -799,19 +799,19 @@ sh_missing_entries_finish (call_frame_t *frame, xlator_t *this)          afr_internal_lock_t *int_lock = NULL;          afr_local_t         *local    = NULL; -	local = frame->local; +        local = frame->local;          int_lock = &local->internal_lock;          int_lock->lock_cbk = afr_sh_missing_entries_done;          afr_unlock (frame, this); -	return 0; +        return 0;  }  static int  sh_destroy_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -		int32_t op_ret, int op_errno, +                int32_t op_ret, int op_errno,                  struct iatt *preop, struct iatt *postop)  {          afr_local_t *local = NULL; @@ -839,40 +839,40 @@ sh_destroy_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  STACK_DESTROY (frame->root);          } -	return 0; +        return 0;  }  static int  sh_missing_entries_newentry_cbk (call_frame_t *frame, void *cookie, -				 xlator_t *this, -				 int32_t op_ret, int32_t op_errno, -				 inode_t *inode, struct iatt *buf, +                                 xlator_t *this, +                                 int32_t op_ret, int32_t op_errno, +                                 inode_t *inode, struct iatt *buf,                                   struct iatt *preparent,                                   struct iatt *postparent)  { -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; -	afr_private_t   *priv = NULL; -	call_frame_t    *setattr_frame = NULL; -	int              call_count = 0; -	int              child_index = 0; +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; +        afr_private_t   *priv = NULL; +        call_frame_t    *setattr_frame = NULL; +        int              call_count = 0; +        int              child_index = 0;          loc_t *parent_loc = NULL; -	struct iatt     stbuf; +        struct iatt     stbuf;          int32_t valid; -	local = frame->local; -	sh    = &local->self_heal; -	priv  = this->private; +        local = frame->local; +        sh    = &local->self_heal; +        priv  = this->private; -	child_index = (long) cookie; +        child_index = (long) cookie; -	stbuf.ia_atime = sh->buf[sh->source].ia_atime; -	stbuf.ia_atime_nsec = sh->buf[sh->source].ia_atime_nsec; -	stbuf.ia_mtime = sh->buf[sh->source].ia_mtime; -	stbuf.ia_mtime_nsec = sh->buf[sh->source].ia_mtime_nsec; +        stbuf.ia_atime = sh->buf[sh->source].ia_atime; +        stbuf.ia_atime_nsec = sh->buf[sh->source].ia_atime_nsec; +        stbuf.ia_mtime = sh->buf[sh->source].ia_mtime; +        stbuf.ia_mtime_nsec = sh->buf[sh->source].ia_mtime_nsec;          stbuf.ia_uid = sh->buf[sh->source].ia_uid;          stbuf.ia_gid = sh->buf[sh->source].ia_gid; @@ -880,19 +880,19 @@ sh_missing_entries_newentry_cbk (call_frame_t *frame, void *cookie,          valid = GF_SET_ATTR_UID   | GF_SET_ATTR_GID |                  GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME; -	if (op_ret == 0) { -		setattr_frame = copy_frame (frame); +        if (op_ret == 0) { +                setattr_frame = copy_frame (frame);                  setattr_frame->local = GF_CALLOC (1, sizeof (afr_local_t),                                                    gf_afr_mt_afr_local_t);                  ((afr_local_t *)setattr_frame->local)->call_count = 2; -		gf_log (this->name, GF_LOG_TRACE, -			"setattr (%s) on subvolume %s", -			local->loc.path, priv->children[child_index]->name); +                gf_log (this->name, GF_LOG_TRACE, +                        "setattr (%s) on subvolume %s", +                        local->loc.path, priv->children[child_index]->name); -		STACK_WIND_COOKIE (setattr_frame, sh_destroy_cbk, +                STACK_WIND_COOKIE (setattr_frame, sh_destroy_cbk,                                     (void *) (long) 0,                                     priv->children[child_index],                                     priv->children[child_index]->fops->setattr, @@ -908,52 +908,52 @@ sh_missing_entries_newentry_cbk (call_frame_t *frame, void *cookie,                                     priv->children[child_index],                                     priv->children[child_index]->fops->setattr,                                     parent_loc, &sh->parentbuf, valid); -	} +        } -	call_count = afr_frame_return (frame); +        call_count = afr_frame_return (frame); -	if (call_count == 0) { -		sh_missing_entries_finish (frame, this); -	} +        if (call_count == 0) { +                sh_missing_entries_finish (frame, this); +        } -	return 0; +        return 0;  }  static int  sh_missing_entries_mknod (call_frame_t *frame, xlator_t *this)  { -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; -	afr_private_t   *priv = NULL; -	int              i = 0; +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; +        afr_private_t   *priv = NULL; +        int              i = 0;          int              ret = 0; -	int              enoent_count = 0; -	int              call_count = 0; -	mode_t           st_mode = 0; -	dev_t            ia_rdev = 0; +        int              enoent_count = 0; +        int              call_count = 0; +        mode_t           st_mode = 0; +        dev_t            ia_rdev = 0;          dict_t          *dict = NULL;          dev_t            st_rdev = 0; -	local = frame->local; -	sh = &local->self_heal; -	priv = this->private; +        local = frame->local; +        sh = &local->self_heal; +        priv = this->private; -	for (i = 0; i < priv->child_count; i++) -		if (sh->child_errno[i] == ENOENT) -			enoent_count++; +        for (i = 0; i < priv->child_count; i++) +                if (sh->child_errno[i] == ENOENT) +                        enoent_count++; -	call_count = enoent_count; -	local->call_count = call_count; +        call_count = enoent_count; +        local->call_count = call_count; -	st_mode = st_mode_from_ia (sh->buf[sh->source].ia_prot, +        st_mode = st_mode_from_ia (sh->buf[sh->source].ia_prot,                                     sh->buf[sh->source].ia_type); -	ia_rdev  = sh->buf[sh->source].ia_rdev; +        ia_rdev  = sh->buf[sh->source].ia_rdev;          st_rdev = makedev (ia_major (ia_rdev), ia_minor (ia_rdev)); -	gf_log (this->name, GF_LOG_TRACE, -		"mknod %s mode 0%o device type %"PRId64" on %d subvolumes", -		local->loc.path, st_mode, (uint64_t)st_rdev, enoent_count); +        gf_log (this->name, GF_LOG_TRACE, +                "mknod %s mode 0%o device type %"PRId64" on %d subvolumes", +                local->loc.path, st_mode, (uint64_t)st_rdev, enoent_count);          dict = dict_new ();          if (!dict) @@ -963,52 +963,52 @@ sh_missing_entries_mknod (call_frame_t *frame, xlator_t *this)          if (ret)                  gf_log (this->name, GF_LOG_DEBUG, "gfid set failed"); -	for (i = 0; i < priv->child_count; i++) { -		if (sh->child_errno[i] == ENOENT) { -			STACK_WIND_COOKIE (frame, -					   sh_missing_entries_newentry_cbk, -					   (void *) (long) i, -					   priv->children[i], -					   priv->children[i]->fops->mknod, -					   &local->loc, st_mode, st_rdev, dict); -			if (!--call_count) -				break; -		} -	} +        for (i = 0; i < priv->child_count; i++) { +                if (sh->child_errno[i] == ENOENT) { +                        STACK_WIND_COOKIE (frame, +                                           sh_missing_entries_newentry_cbk, +                                           (void *) (long) i, +                                           priv->children[i], +                                           priv->children[i]->fops->mknod, +                                           &local->loc, st_mode, st_rdev, dict); +                        if (!--call_count) +                                break; +                } +        }          if (dict)                  dict_unref (dict); -	return 0; +        return 0;  }  static int  sh_missing_entries_mkdir (call_frame_t *frame, xlator_t *this)  { -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; -	afr_private_t   *priv = NULL; +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; +        afr_private_t   *priv = NULL;          dict_t          *dict = NULL; -	int              i = 0; +        int              i = 0;          int              ret = 0; -	int              enoent_count = 0; -	int              call_count = 0; -	mode_t           st_mode = 0; +        int              enoent_count = 0; +        int              call_count = 0; +        mode_t           st_mode = 0; -	local = frame->local; -	sh = &local->self_heal; -	priv = this->private; +        local = frame->local; +        sh = &local->self_heal; +        priv = this->private; -	for (i = 0; i < priv->child_count; i++) -		if (sh->child_errno[i] == ENOENT) -			enoent_count++; +        for (i = 0; i < priv->child_count; i++) +                if (sh->child_errno[i] == ENOENT) +                        enoent_count++; -	call_count = enoent_count; -	local->call_count = call_count; +        call_count = enoent_count; +        local->call_count = call_count; -	st_mode = st_mode_from_ia (sh->buf[sh->source].ia_prot, +        st_mode = st_mode_from_ia (sh->buf[sh->source].ia_prot,                                     sh->buf[sh->source].ia_type);          dict = dict_new (); @@ -1025,12 +1025,12 @@ sh_missing_entries_mkdir (call_frame_t *frame, xlator_t *this)                          "inode gfid set failed"); -	gf_log (this->name, GF_LOG_TRACE, -		"mkdir %s mode 0%o on %d subvolumes", -		local->loc.path, st_mode, enoent_count); +        gf_log (this->name, GF_LOG_TRACE, +                "mkdir %s mode 0%o on %d subvolumes", +                local->loc.path, st_mode, enoent_count); -	for (i = 0; i < priv->child_count; i++) { -		if (sh->child_errno[i] == ENOENT) { +        for (i = 0; i < priv->child_count; i++) { +                if (sh->child_errno[i] == ENOENT) {                          if (!strcmp (local->loc.path, "/")) {                                  /* We shouldn't try to create "/" */ @@ -1047,40 +1047,40 @@ sh_missing_entries_mkdir (call_frame_t *frame, xlator_t *this)                                  if (!--call_count)                                          break;                          } -		} -	} +                } +        }          if (dict)                  dict_unref (dict); -	return 0; +        return 0;  }  static int  sh_missing_entries_symlink (call_frame_t *frame, xlator_t *this, -			    const char *link, struct iatt *buf) +                            const char *link, struct iatt *buf)  { -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; -	afr_private_t   *priv = NULL; +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; +        afr_private_t   *priv = NULL;          dict_t          *dict = NULL; -	int              i = 0; +        int              i = 0;          int              ret = 0; -	int              enoent_count = 0; -	int              call_count = 0; +        int              enoent_count = 0; +        int              call_count = 0; -	local = frame->local; -	sh = &local->self_heal; -	priv = this->private; +        local = frame->local; +        sh = &local->self_heal; +        priv = this->private; -	for (i = 0; i < priv->child_count; i++) -		if (sh->child_errno[i] == ENOENT) -			enoent_count++; +        for (i = 0; i < priv->child_count; i++) +                if (sh->child_errno[i] == ENOENT) +                        enoent_count++; -	call_count = enoent_count; -	local->call_count = call_count; +        call_count = enoent_count; +        local->call_count = call_count;          dict = dict_new ();          if (!dict) { @@ -1095,231 +1095,231 @@ sh_missing_entries_symlink (call_frame_t *frame, xlator_t *this,                  gf_log (this->name, GF_LOG_DEBUG,                          "dict gfid set failed"); -	gf_log (this->name, GF_LOG_TRACE, -		"symlink %s -> %s on %d subvolumes", -		local->loc.path, link, enoent_count); - -	for (i = 0; i < priv->child_count; i++) { -		if (sh->child_errno[i] == ENOENT) { -			STACK_WIND_COOKIE (frame, -					   sh_missing_entries_newentry_cbk, -					   (void *) (long) i, -					   priv->children[i], -					   priv->children[i]->fops->symlink, -					   link, &local->loc, dict); -			if (!--call_count) -				break; -		} -	} - -	return 0; +        gf_log (this->name, GF_LOG_TRACE, +                "symlink %s -> %s on %d subvolumes", +                local->loc.path, link, enoent_count); + +        for (i = 0; i < priv->child_count; i++) { +                if (sh->child_errno[i] == ENOENT) { +                        STACK_WIND_COOKIE (frame, +                                           sh_missing_entries_newentry_cbk, +                                           (void *) (long) i, +                                           priv->children[i], +                                           priv->children[i]->fops->symlink, +                                           link, &local->loc, dict); +                        if (!--call_count) +                                break; +                } +        } + +        return 0;  }  static int  sh_missing_entries_readlink_cbk (call_frame_t *frame, void *cookie, -				 xlator_t *this, -				 int32_t op_ret, int32_t op_errno, -				 const char *link, struct iatt *sbuf) +                                 xlator_t *this, +                                 int32_t op_ret, int32_t op_errno, +                                 const char *link, struct iatt *sbuf)  { -	if (op_ret > 0) -		sh_missing_entries_symlink (frame, this, link, sbuf); -	else -		sh_missing_entries_finish (frame, this); +        if (op_ret > 0) +                sh_missing_entries_symlink (frame, this, link, sbuf); +        else +                sh_missing_entries_finish (frame, this); -	return 0; +        return 0;  }  static int  sh_missing_entries_readlink (call_frame_t *frame, xlator_t *this)  { -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; -	afr_private_t   *priv = NULL; +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; +        afr_private_t   *priv = NULL; -	local = frame->local; -	sh = &local->self_heal; -	priv = this->private; +        local = frame->local; +        sh = &local->self_heal; +        priv = this->private; -	STACK_WIND (frame, sh_missing_entries_readlink_cbk, -		    priv->children[sh->source], -		    priv->children[sh->source]->fops->readlink, -		    &local->loc, 4096); +        STACK_WIND (frame, sh_missing_entries_readlink_cbk, +                    priv->children[sh->source], +                    priv->children[sh->source]->fops->readlink, +                    &local->loc, 4096); -	return 0; +        return 0;  }  static int  sh_missing_entries_create (call_frame_t *frame, xlator_t *this)  { -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; -	int              type = 0; -	int              i = 0; -	afr_private_t   *priv = NULL; -	int              enoent_count = 0; -	int              govinda_gOvinda = 0; +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; +        int              type = 0; +        int              i = 0; +        afr_private_t   *priv = NULL; +        int              enoent_count = 0; +        int              govinda_gOvinda = 0; -	local = frame->local; -	sh = &local->self_heal; -	priv = this->private; +        local = frame->local; +        sh = &local->self_heal; +        priv = this->private; -	for (i = 0; i < priv->child_count; i++) { +        for (i = 0; i < priv->child_count; i++) {                  if (!local->child_up[i])                          continue; -		if (sh->child_errno[i]) { -			if (sh->child_errno[i] == ENOENT) -				enoent_count++; -		} else { -			if (type) { -				if (type != sh->buf[i].ia_type) { +                if (sh->child_errno[i]) { +                        if (sh->child_errno[i] == ENOENT) +                                enoent_count++; +                } else { +                        if (type) { +                                if (type != sh->buf[i].ia_type) {                                          gf_log (this->name, GF_LOG_TRACE,                                                  "file %s is govinda!",                                                  local->loc.path); -					govinda_gOvinda = 1; +                                        govinda_gOvinda = 1;                                  } -			} else { -				sh->source = i; -				type = sh->buf[i].ia_type; -			} -		} -	} - -	if (govinda_gOvinda) { -		gf_log (this->name, GF_LOG_ERROR, -			"conflicting filetypes exist for path %s. returning.", -			local->loc.path); - -		local->govinda_gOvinda = 1; -		sh_missing_entries_finish (frame, this); -		return 0; -	} - -	if (!type) { -		gf_log (this->name, GF_LOG_ERROR, -			"no source found for %s. all nodes down?. returning.", -			local->loc.path); -		/* subvolumes down and/or file does not exist */ -		sh_missing_entries_finish (frame, this); -		return 0; -	} - -	if (enoent_count == 0) { -		gf_log (this->name, GF_LOG_ERROR, -			"no missing files - %s. proceeding to metadata check", -			local->loc.path); -		/* proceed to next step - metadata self-heal */ -		sh_missing_entries_finish (frame, this); -		return 0; -	} - -	switch (type) { -	case IA_IFSOCK: -	case IA_IFREG: -	case IA_IFBLK: -	case IA_IFCHR: -	case IA_IFIFO: -		sh_missing_entries_mknod (frame, this); -		break; -	case IA_IFLNK: -		sh_missing_entries_readlink (frame, this); -		break; -	case IA_IFDIR: -		sh_missing_entries_mkdir (frame, this); -		break; -	default: -		gf_log (this->name, GF_LOG_ERROR, -			"unknown file type: 0%o", type); -		local->govinda_gOvinda = 1; -		sh_missing_entries_finish (frame, this); -	} - -	return 0; +                        } else { +                                sh->source = i; +                                type = sh->buf[i].ia_type; +                        } +                } +        } + +        if (govinda_gOvinda) { +                gf_log (this->name, GF_LOG_ERROR, +                        "conflicting filetypes exist for path %s. returning.", +                        local->loc.path); + +                local->govinda_gOvinda = 1; +                sh_missing_entries_finish (frame, this); +                return 0; +        } + +        if (!type) { +                gf_log (this->name, GF_LOG_ERROR, +                        "no source found for %s. all nodes down?. returning.", +                        local->loc.path); +                /* subvolumes down and/or file does not exist */ +                sh_missing_entries_finish (frame, this); +                return 0; +        } + +        if (enoent_count == 0) { +                gf_log (this->name, GF_LOG_ERROR, +                        "no missing files - %s. proceeding to metadata check", +                        local->loc.path); +                /* proceed to next step - metadata self-heal */ +                sh_missing_entries_finish (frame, this); +                return 0; +        } + +        switch (type) { +        case IA_IFSOCK: +        case IA_IFREG: +        case IA_IFBLK: +        case IA_IFCHR: +        case IA_IFIFO: +                sh_missing_entries_mknod (frame, this); +                break; +        case IA_IFLNK: +                sh_missing_entries_readlink (frame, this); +                break; +        case IA_IFDIR: +                sh_missing_entries_mkdir (frame, this); +                break; +        default: +                gf_log (this->name, GF_LOG_ERROR, +                        "unknown file type: 0%o", type); +                local->govinda_gOvinda = 1; +                sh_missing_entries_finish (frame, this); +        } + +        return 0;  }  static int  sh_missing_entries_lookup_cbk (call_frame_t *frame, void *cookie, -			       xlator_t *this, -			       int32_t op_ret, int32_t op_errno, +                               xlator_t *this, +                               int32_t op_ret, int32_t op_errno,                                 inode_t *inode, struct iatt *buf, dict_t *xattr,                                 struct iatt *postparent)  { -	int              child_index = 0; -	afr_local_t     *local = NULL; -	int              call_count = 0; -	afr_private_t   *priv = NULL; +        int              child_index = 0; +        afr_local_t     *local = NULL; +        int              call_count = 0; +        afr_private_t   *priv = NULL;          mode_t           st_mode = 0; -	local = frame->local; -	priv = this->private; +        local = frame->local; +        priv = this->private; -	child_index = (long) cookie; +        child_index = (long) cookie;          if (buf)                  st_mode = st_mode_from_ia (buf->ia_prot, buf->ia_type); -	LOCK (&frame->lock); -	{ -		if (op_ret == 0) { -			gf_log (this->name, GF_LOG_TRACE, -				"path %s on subvolume %s is of mode 0%o", +        LOCK (&frame->lock); +        { +                if (op_ret == 0) { +                        gf_log (this->name, GF_LOG_TRACE, +                                "path %s on subvolume %s is of mode 0%o",                                  local->loc.path,                                  priv->children[child_index]->name, -				st_mode); +                                st_mode); -			local->self_heal.buf[child_index] = *buf; +                        local->self_heal.buf[child_index] = *buf;                          local->self_heal.parentbuf        = *postparent; -		} else { -			gf_log (this->name, GF_LOG_TRACE, -				"path %s on subvolume %s => -1 (%s)", -				local->loc.path, -				priv->children[child_index]->name, -				strerror (op_errno)); +                } else { +                        gf_log (this->name, GF_LOG_TRACE, +                                "path %s on subvolume %s => -1 (%s)", +                                local->loc.path, +                                priv->children[child_index]->name, +                                strerror (op_errno)); -			local->self_heal.child_errno[child_index] = op_errno; -		} +                        local->self_heal.child_errno[child_index] = op_errno; +                } -	} -	UNLOCK (&frame->lock); +        } +        UNLOCK (&frame->lock); -	call_count = afr_frame_return (frame); +        call_count = afr_frame_return (frame); -	if (call_count == 0) { -		sh_missing_entries_create (frame, this); -	} +        if (call_count == 0) { +                sh_missing_entries_create (frame, this); +        } -	return 0; +        return 0;  }  static int  sh_missing_entries_lookup (call_frame_t *frame, xlator_t *this)  { -	afr_local_t    *local = NULL; -	int             i = 0; -	int             call_count = 0; -	afr_private_t  *priv = NULL; -	dict_t         *xattr_req = NULL; -	int             ret = -1; +        afr_local_t    *local = NULL; +        int             i = 0; +        int             call_count = 0; +        afr_private_t  *priv = NULL; +        dict_t         *xattr_req = NULL; +        int             ret = -1; -	local = frame->local; -	priv  = this->private; +        local = frame->local; +        priv  = this->private; -	call_count = afr_up_children_count (priv->child_count, +        call_count = afr_up_children_count (priv->child_count,                                              local->child_up); -	local->call_count = call_count; +        local->call_count = call_count; -	xattr_req = dict_new(); +        xattr_req = dict_new(); -	if (xattr_req) { +        if (xattr_req) {                  for (i = 0; i < priv->child_count; i++) {                          ret = dict_set_uint64 (xattr_req,                                                 priv->pending_key[i], @@ -1330,28 +1330,28 @@ sh_missing_entries_lookup (call_frame_t *frame, xlator_t *this)                  }          } -	for (i = 0; i < priv->child_count; i++) { -		if (local->child_up[i]) { -			gf_log (this->name, GF_LOG_TRACE, -				"looking up %s on subvolume %s", -				local->loc.path, priv->children[i]->name); - -			STACK_WIND_COOKIE (frame, -					   sh_missing_entries_lookup_cbk, -					   (void *) (long) i, -					   priv->children[i], -					   priv->children[i]->fops->lookup, -					   &local->loc, xattr_req); - -			if (!--call_count) -				break; -		} -	} +        for (i = 0; i < priv->child_count; i++) { +                if (local->child_up[i]) { +                        gf_log (this->name, GF_LOG_TRACE, +                                "looking up %s on subvolume %s", +                                local->loc.path, priv->children[i]->name); + +                        STACK_WIND_COOKIE (frame, +                                           sh_missing_entries_lookup_cbk, +                                           (void *) (long) i, +                                           priv->children[i], +                                           priv->children[i]->fops->lookup, +                                           &local->loc, xattr_req); + +                        if (!--call_count) +                                break; +                } +        } -	if (xattr_req) -		dict_unref (xattr_req); +        if (xattr_req) +                dict_unref (xattr_req); -	return 0; +        return 0;  } @@ -1408,23 +1408,23 @@ static int  afr_self_heal_missing_entries (call_frame_t *frame, xlator_t *this)  {          afr_internal_lock_t *int_lock = NULL; -	afr_local_t         *local    = NULL; -	afr_self_heal_t     *sh       = NULL; -	afr_private_t       *priv     = NULL; +        afr_local_t         *local    = NULL; +        afr_self_heal_t     *sh       = NULL; +        afr_private_t       *priv     = NULL; -	local    = frame->local; +        local    = frame->local;          int_lock = &local->internal_lock; -	sh       = &local->self_heal; -	priv     = this->private; +        sh       = &local->self_heal; +        priv     = this->private; -	gf_log (this->name, GF_LOG_TRACE, -		"attempting to recreate missing entries for path=%s", -		local->loc.path); +        gf_log (this->name, GF_LOG_TRACE, +                "attempting to recreate missing entries for path=%s", +                local->loc.path); -	afr_build_parent_loc (&sh->parent_loc, &local->loc); +        afr_build_parent_loc (&sh->parent_loc, &local->loc);          afr_sh_entrylk (frame, this); -	return 0; +        return 0;  }  afr_local_t *afr_local_copy (afr_local_t *l, xlator_t *this) @@ -1546,23 +1546,23 @@ afr_self_heal_completion_cbk (call_frame_t *bgsh_frame, xlator_t *this)          AFR_STACK_DESTROY (bgsh_frame); -	return 0; +        return 0;  }  int  afr_self_heal (call_frame_t *frame, xlator_t *this)  { -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; -	afr_private_t   *priv = NULL; -	int              i = 0; +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; +        afr_private_t   *priv = NULL; +        int              i = 0;          call_frame_t *sh_frame = NULL;          afr_local_t  *sh_local = NULL; -	local = frame->local; -	priv  = this->private; +        local = frame->local; +        priv  = this->private;          GF_ASSERT (local->loc.path); @@ -1600,49 +1600,49 @@ afr_self_heal (call_frame_t *frame, xlator_t *this)          sh->completion_cbk = afr_self_heal_completion_cbk; -	sh->buf = GF_CALLOC (priv->child_count, sizeof (struct iatt), +        sh->buf = GF_CALLOC (priv->child_count, sizeof (struct iatt),                               gf_afr_mt_iatt); -	sh->child_errno = GF_CALLOC (priv->child_count, sizeof (int), +        sh->child_errno = GF_CALLOC (priv->child_count, sizeof (int),                                       gf_afr_mt_int); -	sh->success = GF_CALLOC (priv->child_count, sizeof (int), -                                gf_afr_mt_int); -	sh->xattr = GF_CALLOC (priv->child_count, sizeof (dict_t *), -                                gf_afr_mt_dict_t); -	sh->sources = GF_CALLOC (sizeof (*sh->sources), priv->child_count, -                                gf_afr_mt_int); -	sh->locked_nodes = GF_CALLOC (sizeof (*sh->locked_nodes), +        sh->success = GF_CALLOC (priv->child_count, sizeof (int), +                                 gf_afr_mt_int); +        sh->xattr = GF_CALLOC (priv->child_count, sizeof (dict_t *), +                               gf_afr_mt_dict_t); +        sh->sources = GF_CALLOC (sizeof (*sh->sources), priv->child_count, +                                 gf_afr_mt_int); +        sh->locked_nodes = GF_CALLOC (sizeof (*sh->locked_nodes),                                        priv->child_count,                                        gf_afr_mt_int); -	sh->pending_matrix = GF_CALLOC (sizeof (int32_t *), priv->child_count, +        sh->pending_matrix = GF_CALLOC (sizeof (int32_t *), priv->child_count,                                          gf_afr_mt_int32_t); -	for (i = 0; i < priv->child_count; i++) { -		sh->pending_matrix[i] = GF_CALLOC (sizeof (int32_t), -					  	   priv->child_count, +        for (i = 0; i < priv->child_count; i++) { +                sh->pending_matrix[i] = GF_CALLOC (sizeof (int32_t), +                                                   priv->child_count,                                                     gf_afr_mt_int32_t); -	} +        } -	sh->delta_matrix = GF_CALLOC (sizeof (int32_t *), priv->child_count, +        sh->delta_matrix = GF_CALLOC (sizeof (int32_t *), priv->child_count,                                        gf_afr_mt_int32_t); -	for (i = 0; i < priv->child_count; i++) { -		sh->delta_matrix[i] = GF_CALLOC (sizeof (int32_t), -					         priv->child_count, +        for (i = 0; i < priv->child_count; i++) { +                sh->delta_matrix[i] = GF_CALLOC (sizeof (int32_t), +                                                 priv->child_count,                                                   gf_afr_mt_int32_t); -	} +        }          FRAME_SU_DO (sh_frame, afr_local_t); -	if (local->success_count && local->enoent_count) { -		afr_self_heal_missing_entries (sh_frame, this); -	} else { -		gf_log (this->name, GF_LOG_TRACE, -			"proceeding to metadata check on %s", -			local->loc.path); +        if (local->success_count && local->enoent_count) { +                afr_self_heal_missing_entries (sh_frame, this); +        } else { +                gf_log (this->name, GF_LOG_TRACE, +                        "proceeding to metadata check on %s", +                        local->loc.path); -		afr_sh_missing_entries_done (sh_frame, this); -	} +                afr_sh_missing_entries_done (sh_frame, this); +        } -	return 0; +        return 0;  }  void diff --git a/xlators/cluster/afr/src/afr-self-heal-entry.c b/xlators/cluster/afr/src/afr-self-heal-entry.c index 2fac06a5283..a74b8477dda 100644 --- a/xlators/cluster/afr/src/afr-self-heal-entry.c +++ b/xlators/cluster/afr/src/afr-self-heal-entry.c @@ -55,17 +55,17 @@ afr_sh_post_nonblocking_entrylk_cbk (call_frame_t *frame, xlator_t *this);  int  afr_sh_entry_done (call_frame_t *frame, xlator_t *this)  { -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; -	afr_private_t   *priv = NULL; +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; +        afr_private_t   *priv = NULL; -	local = frame->local; -	sh = &local->self_heal; -	priv = this->private; +        local = frame->local; +        sh = &local->self_heal; +        priv = this->private; -	/*  -	   TODO: cleanup sh->*  -	*/ +        /* +          TODO: cleanup sh->* +        */          if (sh->healing_fd)                  fd_unref (sh->healing_fd); @@ -75,13 +75,13 @@ afr_sh_entry_done (call_frame_t *frame, xlator_t *this)  /*                 sh->locked_nodes[i] = 0; */  /*         } */ -	gf_log (this->name, GF_LOG_TRACE, -		"self heal of %s completed", -		local->loc.path); +        gf_log (this->name, GF_LOG_TRACE, +                "self heal of %s completed", +                local->loc.path); -	sh->completion_cbk (frame, this); +        sh->completion_cbk (frame, this); -	return 0; +        return 0;  } @@ -104,33 +104,33 @@ afr_sh_entry_unlock (call_frame_t *frame, xlator_t *this)  int  afr_sh_entry_finish (call_frame_t *frame, xlator_t *this)  { -	afr_local_t   *local = NULL; +        afr_local_t   *local = NULL; -	local = frame->local; +        local = frame->local; -	gf_log (this->name, GF_LOG_TRACE, -		"finishing entry selfheal of %s", local->loc.path); +        gf_log (this->name, GF_LOG_TRACE, +                "finishing entry selfheal of %s", local->loc.path); -	afr_sh_entry_unlock (frame, this); +        afr_sh_entry_unlock (frame, this); -	return 0; +        return 0;  }  int  afr_sh_entry_erase_pending_cbk (call_frame_t *frame, void *cookie, -				xlator_t *this, int32_t op_ret, -				int32_t op_errno, dict_t *xattr) +                                xlator_t *this, int32_t op_ret, +                                int32_t op_errno, dict_t *xattr)  { -	int                  call_count = 0; +        int                  call_count = 0;          afr_local_t         *local      = NULL;          afr_self_heal_t     *sh         = NULL;          afr_local_t         *orig_local = NULL;          call_frame_t        *orig_frame = NULL; -	call_count = afr_frame_return (frame); +        call_count = afr_frame_return (frame); -	if (call_count == 0) { +        if (call_count == 0) {                  local = frame->local;                  sh = &local->self_heal; @@ -144,202 +144,202 @@ afr_sh_entry_erase_pending_cbk (call_frame_t *frame, void *cookie,                  afr_sh_entry_finish (frame, this);          } -	return 0; +        return 0;  }  int  afr_sh_entry_erase_pending (call_frame_t *frame, xlator_t *this)  { -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; -	afr_private_t   *priv = NULL; -	int              call_count = 0; -	int              i = 0; -	dict_t          **erase_xattr = NULL; +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; +        afr_private_t   *priv = NULL; +        int              call_count = 0; +        int              i = 0; +        dict_t          **erase_xattr = NULL;          int              need_unwind = 0; -	local = frame->local; -	sh = &local->self_heal; -	priv = this->private; +        local = frame->local; +        sh = &local->self_heal; +        priv = this->private; -	afr_sh_pending_to_delta (priv, sh->xattr, sh->delta_matrix, sh->success, +        afr_sh_pending_to_delta (priv, sh->xattr, sh->delta_matrix, sh->success,                                   priv->child_count, AFR_ENTRY_TRANSACTION); -	erase_xattr = GF_CALLOC (sizeof (*erase_xattr), priv->child_count, +        erase_xattr = GF_CALLOC (sizeof (*erase_xattr), priv->child_count,                                   gf_afr_mt_dict_t); -	for (i = 0; i < priv->child_count; i++) { -		if (sh->xattr[i]) { -			call_count++; +        for (i = 0; i < priv->child_count; i++) { +                if (sh->xattr[i]) { +                        call_count++; -			erase_xattr[i] = get_new_dict(); -			dict_ref (erase_xattr[i]); -		} -	} +                        erase_xattr[i] = get_new_dict(); +                        dict_ref (erase_xattr[i]); +                } +        }          if (call_count == 0)                  need_unwind = 1; -	afr_sh_delta_to_xattr (priv, sh->delta_matrix, erase_xattr, -			       priv->child_count, AFR_ENTRY_TRANSACTION); - -	local->call_count = call_count; -	for (i = 0; i < priv->child_count; i++) { -		if (!erase_xattr[i]) -			continue; - -		gf_log (this->name, GF_LOG_TRACE, -			"erasing pending flags from %s on %s", -			local->loc.path, priv->children[i]->name); - -		STACK_WIND_COOKIE (frame, afr_sh_entry_erase_pending_cbk, -				   (void *) (long) i, -				   priv->children[i], -				   priv->children[i]->fops->xattrop, -				   &local->loc, -				   GF_XATTROP_ADD_ARRAY, erase_xattr[i]); -		if (!--call_count) -			break; -	} - -	for (i = 0; i < priv->child_count; i++) { -		if (erase_xattr[i]) { -			dict_unref (erase_xattr[i]); -		} -	} -	GF_FREE (erase_xattr); +        afr_sh_delta_to_xattr (priv, sh->delta_matrix, erase_xattr, +                               priv->child_count, AFR_ENTRY_TRANSACTION); + +        local->call_count = call_count; +        for (i = 0; i < priv->child_count; i++) { +                if (!erase_xattr[i]) +                        continue; + +                gf_log (this->name, GF_LOG_TRACE, +                        "erasing pending flags from %s on %s", +                        local->loc.path, priv->children[i]->name); + +                STACK_WIND_COOKIE (frame, afr_sh_entry_erase_pending_cbk, +                                   (void *) (long) i, +                                   priv->children[i], +                                   priv->children[i]->fops->xattrop, +                                   &local->loc, +                                   GF_XATTROP_ADD_ARRAY, erase_xattr[i]); +                if (!--call_count) +                        break; +        } + +        for (i = 0; i < priv->child_count; i++) { +                if (erase_xattr[i]) { +                        dict_unref (erase_xattr[i]); +                } +        } +        GF_FREE (erase_xattr);          if (need_unwind)                  afr_sh_entry_finish (frame, this); -	return 0; +        return 0;  }  static int  next_active_source (call_frame_t *frame, xlator_t *this, -		    int current_active_source) +                    int current_active_source)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *local  = NULL; -	afr_self_heal_t *sh  = NULL; -	int              source = -1; -	int              next_active_source = -1; -	int              i = 0; - -	priv = this->private; -	local = frame->local; -	sh = &local->self_heal; - -	source = sh->source; - -	if (source != -1) { -		if (current_active_source != source) -			next_active_source = source; -		goto out; -	} - -	/* -	  the next active sink becomes the source for the -	  'conservative decision' of merging all entries -	*/ - -	for (i = 0; i < priv->child_count; i++) { -		if ((sh->sources[i] == 0) -		    && (local->child_up[i] == 1) -		    && (i > current_active_source)) { - -			next_active_source = i; -			break; -		} -	} +        afr_private_t   *priv = NULL; +        afr_local_t     *local  = NULL; +        afr_self_heal_t *sh  = NULL; +        int              source = -1; +        int              next_active_source = -1; +        int              i = 0; + +        priv = this->private; +        local = frame->local; +        sh = &local->self_heal; + +        source = sh->source; + +        if (source != -1) { +                if (current_active_source != source) +                        next_active_source = source; +                goto out; +        } + +        /* +          the next active sink becomes the source for the +          'conservative decision' of merging all entries +        */ + +        for (i = 0; i < priv->child_count; i++) { +                if ((sh->sources[i] == 0) +                    && (local->child_up[i] == 1) +                    && (i > current_active_source)) { + +                        next_active_source = i; +                        break; +                } +        }  out: -	return next_active_source; +        return next_active_source;  }  static int  next_active_sink (call_frame_t *frame, xlator_t *this, -		  int current_active_sink) +                  int current_active_sink)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *local  = NULL; -	afr_self_heal_t *sh  = NULL; -	int              next_active_sink = -1; -	int              i = 0; - -	priv = this->private; -	local = frame->local; -	sh = &local->self_heal; - -	/* -	  the next active sink becomes the source for the -	  'conservative decision' of merging all entries -	*/ - -	for (i = 0; i < priv->child_count; i++) { -		if ((sh->sources[i] == 0) -		    && (local->child_up[i] == 1) -		    && (i > current_active_sink)) { - -			next_active_sink = i; -			break; -		} -	} - -	return next_active_sink; +        afr_private_t   *priv = NULL; +        afr_local_t     *local  = NULL; +        afr_self_heal_t *sh  = NULL; +        int              next_active_sink = -1; +        int              i = 0; + +        priv = this->private; +        local = frame->local; +        sh = &local->self_heal; + +        /* +          the next active sink becomes the source for the +          'conservative decision' of merging all entries +        */ + +        for (i = 0; i < priv->child_count; i++) { +                if ((sh->sources[i] == 0) +                    && (local->child_up[i] == 1) +                    && (i > current_active_sink)) { + +                        next_active_sink = i; +                        break; +                } +        } + +        return next_active_sink;  }  int  build_child_loc (xlator_t *this, loc_t *child, loc_t *parent, char *name)  { -	int   ret = -1; +        int   ret = -1; -	if (!child) { -		goto out; -	} +        if (!child) { +                goto out; +        } -	if (strcmp (parent->path, "/") == 0) -		ret = gf_asprintf ((char **)&child->path, "/%s", name); -	else -		ret = gf_asprintf ((char **)&child->path, "%s/%s", parent->path,  -                                name); +        if (strcmp (parent->path, "/") == 0) +                ret = gf_asprintf ((char **)&child->path, "/%s", name); +        else +                ret = gf_asprintf ((char **)&child->path, "%s/%s", parent->path, +                                   name);          if (-1 == ret) {                  gf_log (this->name, GF_LOG_ERROR,                          "asprintf failed while setting child path");          } -	if (!child->path) { -		gf_log (this->name, GF_LOG_ERROR, -			"Out of memory."); -		goto out; -	} +        if (!child->path) { +                gf_log (this->name, GF_LOG_ERROR, +                        "Out of memory."); +                goto out; +        } -	child->name = strrchr (child->path, '/'); -	if (child->name) -		child->name++; +        child->name = strrchr (child->path, '/'); +        if (child->name) +                child->name++; -	child->parent = inode_ref (parent->inode); -	child->inode = inode_new (parent->inode->table); +        child->parent = inode_ref (parent->inode); +        child->inode = inode_new (parent->inode->table); -	if (!child->inode) { -		gf_log (this->name, GF_LOG_ERROR, -			"Out of memory."); -		goto out; -	} +        if (!child->inode) { +                gf_log (this->name, GF_LOG_ERROR, +                        "Out of memory."); +                goto out; +        } -	ret = 0; +        ret = 0;  out: -	if (ret == -1) -		loc_wipe (child); +        if (ret == -1) +                loc_wipe (child); -	return ret; +        return ret;  } @@ -348,27 +348,27 @@ afr_sh_entry_impunge_all (call_frame_t *frame, xlator_t *this);  int  afr_sh_entry_impunge_subvol (call_frame_t *frame, xlator_t *this, -			     int active_src); +                             int active_src);  int  afr_sh_entry_expunge_all (call_frame_t *frame, xlator_t *this);  int  afr_sh_entry_expunge_subvol (call_frame_t *frame, xlator_t *this, -			     int active_src); +                             int active_src);  int  afr_sh_entry_expunge_entry_done (call_frame_t *frame, xlator_t *this, -				 int active_src) +                                 int active_src)  { -	int              call_count = 0; +        int              call_count = 0; -	call_count = afr_frame_return (frame); +        call_count = afr_frame_return (frame); -	if (call_count == 0) -		afr_sh_entry_expunge_subvol (frame, this, active_src); +        if (call_count == 0) +                afr_sh_entry_expunge_subvol (frame, this, active_src); -	return 0; +        return 0;  }  int @@ -377,17 +377,17 @@ afr_sh_entry_expunge_parent_setattr_cbk (call_frame_t *expunge_frame,                                           int32_t op_ret, int32_t op_errno,                                           struct iatt *preop, struct iatt *postop)  { -	afr_private_t   *priv          = NULL; -	afr_local_t     *expunge_local = NULL; -	afr_self_heal_t *expunge_sh    = NULL; +        afr_private_t   *priv          = NULL; +        afr_local_t     *expunge_local = NULL; +        afr_self_heal_t *expunge_sh    = NULL;          call_frame_t    *frame         = NULL;          int active_src = (long) cookie;          priv          = this->private;          expunge_local = expunge_frame->local; -	expunge_sh    = &expunge_local->self_heal; -	frame         = expunge_sh->sh_frame; +        expunge_sh    = &expunge_local->self_heal; +        frame         = expunge_sh->sh_frame;          if (op_ret != 0) {                  gf_log (this->name, GF_LOG_DEBUG, @@ -396,8 +396,8 @@ afr_sh_entry_expunge_parent_setattr_cbk (call_frame_t *expunge_frame,                          priv->children[active_src]->name, strerror (op_errno));          } -	AFR_STACK_DESTROY (expunge_frame); -	afr_sh_entry_expunge_entry_done (frame, this, active_src); +        AFR_STACK_DESTROY (expunge_frame); +        afr_sh_entry_expunge_entry_done (frame, this, active_src);          return 0;  } @@ -405,38 +405,38 @@ afr_sh_entry_expunge_parent_setattr_cbk (call_frame_t *expunge_frame,  int  afr_sh_entry_expunge_remove_cbk (call_frame_t *expunge_frame, void *cookie, -				 xlator_t *this, -				 int32_t op_ret, int32_t op_errno, +                                 xlator_t *this, +                                 int32_t op_ret, int32_t op_errno,                                   struct iatt *preparent,                                   struct iatt *postparent)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *expunge_local = NULL; -	afr_self_heal_t *expunge_sh = NULL; -	int              active_src = 0; -	call_frame_t    *frame = NULL; +        afr_private_t   *priv = NULL; +        afr_local_t     *expunge_local = NULL; +        afr_self_heal_t *expunge_sh = NULL; +        int              active_src = 0; +        call_frame_t    *frame = NULL;          int32_t valid = 0; -	priv = this->private; -	expunge_local = expunge_frame->local; -	expunge_sh = &expunge_local->self_heal; -	frame = expunge_sh->sh_frame; - -	active_src = (long) cookie; - -	if (op_ret == 0) { -		gf_log (this->name, GF_LOG_DEBUG, -			"removed %s on %s", -			expunge_local->loc.path, -			priv->children[active_src]->name); -	} else { -		gf_log (this->name, GF_LOG_DEBUG, -			"removing %s on %s failed (%s)", -			expunge_local->loc.path, -			priv->children[active_src]->name, -			strerror (op_errno)); -	} +        priv = this->private; +        expunge_local = expunge_frame->local; +        expunge_sh = &expunge_local->self_heal; +        frame = expunge_sh->sh_frame; + +        active_src = (long) cookie; + +        if (op_ret == 0) { +                gf_log (this->name, GF_LOG_DEBUG, +                        "removed %s on %s", +                        expunge_local->loc.path, +                        priv->children[active_src]->name); +        } else { +                gf_log (this->name, GF_LOG_DEBUG, +                        "removing %s on %s failed (%s)", +                        expunge_local->loc.path, +                        priv->children[active_src]->name, +                        strerror (op_errno)); +        }          valid = GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME;          afr_build_parent_loc (&expunge_sh->parent_loc, &expunge_local->loc); @@ -457,23 +457,23 @@ int  afr_sh_entry_expunge_unlink (call_frame_t *expunge_frame, xlator_t *this,                               int active_src)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *expunge_local = NULL; +        afr_private_t   *priv = NULL; +        afr_local_t     *expunge_local = NULL; -	priv          = this->private; -	expunge_local = expunge_frame->local; +        priv          = this->private; +        expunge_local = expunge_frame->local; -	gf_log (this->name, GF_LOG_TRACE, -		"expunging file %s on %s", -		expunge_local->loc.path, priv->children[active_src]->name); +        gf_log (this->name, GF_LOG_TRACE, +                "expunging file %s on %s", +                expunge_local->loc.path, priv->children[active_src]->name); -	STACK_WIND_COOKIE (expunge_frame, afr_sh_entry_expunge_remove_cbk, -			   (void *) (long) active_src, -			   priv->children[active_src], -			   priv->children[active_src]->fops->unlink, -			   &expunge_local->loc); +        STACK_WIND_COOKIE (expunge_frame, afr_sh_entry_expunge_remove_cbk, +                           (void *) (long) active_src, +                           priv->children[active_src], +                           priv->children[active_src]->fops->unlink, +                           &expunge_local->loc); -	return 0; +        return 0;  } @@ -482,160 +482,160 @@ int  afr_sh_entry_expunge_rmdir (call_frame_t *expunge_frame, xlator_t *this,                              int active_src)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *expunge_local = NULL; +        afr_private_t   *priv = NULL; +        afr_local_t     *expunge_local = NULL; -	priv          = this->private; -	expunge_local = expunge_frame->local; +        priv          = this->private; +        expunge_local = expunge_frame->local; -	gf_log (this->name, GF_LOG_DEBUG, -		"expunging directory %s on %s", -		expunge_local->loc.path, priv->children[active_src]->name); +        gf_log (this->name, GF_LOG_DEBUG, +                "expunging directory %s on %s", +                expunge_local->loc.path, priv->children[active_src]->name); -	STACK_WIND_COOKIE (expunge_frame, afr_sh_entry_expunge_remove_cbk, -			   (void *) (long) active_src, -			   priv->children[active_src], -			   priv->children[active_src]->fops->rmdir, -			   &expunge_local->loc, 1); +        STACK_WIND_COOKIE (expunge_frame, afr_sh_entry_expunge_remove_cbk, +                           (void *) (long) active_src, +                           priv->children[active_src], +                           priv->children[active_src]->fops->rmdir, +                           &expunge_local->loc, 1); -	return 0; +        return 0;  }  int  afr_sh_entry_expunge_remove (call_frame_t *expunge_frame, xlator_t *this, -			     int active_src, struct iatt *buf) +                             int active_src, struct iatt *buf)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *expunge_local = NULL; -	afr_self_heal_t *expunge_sh = NULL; -	int              source = 0; -	call_frame_t    *frame = NULL; -	int              type = 0; - -	priv = this->private; -	expunge_local = expunge_frame->local; -	expunge_sh = &expunge_local->self_heal; -	frame = expunge_sh->sh_frame; -	source = expunge_sh->source; - -	type = buf->ia_type; - -	switch (type) { -	case IA_IFSOCK: -	case IA_IFREG: -	case IA_IFBLK: -	case IA_IFCHR: -	case IA_IFIFO: -	case IA_IFLNK: -		afr_sh_entry_expunge_unlink (expunge_frame, this, active_src); +        afr_private_t   *priv = NULL; +        afr_local_t     *expunge_local = NULL; +        afr_self_heal_t *expunge_sh = NULL; +        int              source = 0; +        call_frame_t    *frame = NULL; +        int              type = 0; + +        priv = this->private; +        expunge_local = expunge_frame->local; +        expunge_sh = &expunge_local->self_heal; +        frame = expunge_sh->sh_frame; +        source = expunge_sh->source; + +        type = buf->ia_type; + +        switch (type) { +        case IA_IFSOCK: +        case IA_IFREG: +        case IA_IFBLK: +        case IA_IFCHR: +        case IA_IFIFO: +        case IA_IFLNK: +                afr_sh_entry_expunge_unlink (expunge_frame, this, active_src); +                break; +        case IA_IFDIR: +                afr_sh_entry_expunge_rmdir (expunge_frame, this, active_src);                  break; -	case IA_IFDIR: -		afr_sh_entry_expunge_rmdir (expunge_frame, this, active_src); -		break; -	default: -		gf_log (this->name, GF_LOG_ERROR, -			"%s has unknown file type on %s: 0%o", -			expunge_local->loc.path, -			priv->children[source]->name, type); -		goto out; -		break; -	} - -	return 0; +        default: +                gf_log (this->name, GF_LOG_ERROR, +                        "%s has unknown file type on %s: 0%o", +                        expunge_local->loc.path, +                        priv->children[source]->name, type); +                goto out; +                break; +        } + +        return 0;  out: -	AFR_STACK_DESTROY (expunge_frame); -	afr_sh_entry_expunge_entry_done (frame, this, active_src); +        AFR_STACK_DESTROY (expunge_frame); +        afr_sh_entry_expunge_entry_done (frame, this, active_src); -	return 0; +        return 0;  }  int  afr_sh_entry_expunge_lookup_cbk (call_frame_t *expunge_frame, void *cookie, -				xlator_t *this, -				int32_t op_ret,	int32_t op_errno, -                                inode_t *inode, struct iatt *buf, dict_t *x, -                                struct iatt *postparent) +                                 xlator_t *this, +                                 int32_t op_ret, int32_t op_errno, +                                 inode_t *inode, struct iatt *buf, dict_t *x, +                                 struct iatt *postparent)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *expunge_local = NULL; -	afr_self_heal_t *expunge_sh = NULL; -	call_frame_t    *frame = NULL; -	int              active_src = 0; - -	priv = this->private; -	expunge_local = expunge_frame->local; -	expunge_sh = &expunge_local->self_heal; -	frame = expunge_sh->sh_frame; -	active_src = (long) cookie; - -	if (op_ret == -1) { -		gf_log (this->name, GF_LOG_TRACE, -			"lookup of %s on %s failed (%s)", -			expunge_local->loc.path, -			priv->children[active_src]->name, -			strerror (op_errno)); -		goto out; -	} - -	afr_sh_entry_expunge_remove (expunge_frame, this, active_src, buf); - -	return 0; +        afr_private_t   *priv = NULL; +        afr_local_t     *expunge_local = NULL; +        afr_self_heal_t *expunge_sh = NULL; +        call_frame_t    *frame = NULL; +        int              active_src = 0; + +        priv = this->private; +        expunge_local = expunge_frame->local; +        expunge_sh = &expunge_local->self_heal; +        frame = expunge_sh->sh_frame; +        active_src = (long) cookie; + +        if (op_ret == -1) { +                gf_log (this->name, GF_LOG_TRACE, +                        "lookup of %s on %s failed (%s)", +                        expunge_local->loc.path, +                        priv->children[active_src]->name, +                        strerror (op_errno)); +                goto out; +        } + +        afr_sh_entry_expunge_remove (expunge_frame, this, active_src, buf); + +        return 0;  out: -	AFR_STACK_DESTROY (expunge_frame); -	afr_sh_entry_expunge_entry_done (frame, this, active_src); +        AFR_STACK_DESTROY (expunge_frame); +        afr_sh_entry_expunge_entry_done (frame, this, active_src); -	return 0; +        return 0;  }  int  afr_sh_entry_expunge_purge (call_frame_t *expunge_frame, xlator_t *this, -			    int active_src) +                            int active_src)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *expunge_local = NULL; - -	priv = this->private; -	expunge_local = expunge_frame->local; - -	gf_log (this->name, GF_LOG_TRACE, -		"looking up %s on %s", -		expunge_local->loc.path, priv->children[active_src]->name); -	 -	STACK_WIND_COOKIE (expunge_frame, afr_sh_entry_expunge_lookup_cbk, -			   (void *) (long) active_src, -			   priv->children[active_src], -			   priv->children[active_src]->fops->lookup, -			   &expunge_local->loc, 0); - -	return 0; +        afr_private_t   *priv = NULL; +        afr_local_t     *expunge_local = NULL; + +        priv = this->private; +        expunge_local = expunge_frame->local; + +        gf_log (this->name, GF_LOG_TRACE, +                "looking up %s on %s", +                expunge_local->loc.path, priv->children[active_src]->name); + +        STACK_WIND_COOKIE (expunge_frame, afr_sh_entry_expunge_lookup_cbk, +                           (void *) (long) active_src, +                           priv->children[active_src], +                           priv->children[active_src]->fops->lookup, +                           &expunge_local->loc, 0); + +        return 0;  }  int  afr_sh_entry_expunge_entry_cbk (call_frame_t *expunge_frame, void *cookie, -				xlator_t *this, -				int32_t op_ret,	int32_t op_errno, +                                xlator_t *this, +                                int32_t op_ret, int32_t op_errno,                                  inode_t *inode, struct iatt *buf, dict_t *x,                                  struct iatt *postparent)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *expunge_local = NULL; -	afr_self_heal_t *expunge_sh = NULL; -	int              source = 0; -	call_frame_t    *frame = NULL; -	int              active_src = 0; +        afr_private_t   *priv = NULL; +        afr_local_t     *expunge_local = NULL; +        afr_self_heal_t *expunge_sh = NULL; +        int              source = 0; +        call_frame_t    *frame = NULL; +        int              active_src = 0;          int              need_expunge = 0; -	priv = this->private; -	expunge_local = expunge_frame->local; -	expunge_sh = &expunge_local->self_heal; -	frame = expunge_sh->sh_frame; -	active_src = expunge_sh->active_source; -	source = (long) cookie; +        priv = this->private; +        expunge_local = expunge_frame->local; +        expunge_sh = &expunge_local->self_heal; +        frame = expunge_sh->sh_frame; +        active_src = expunge_sh->active_source; +        source = (long) cookie;          if (op_ret == -1 && op_errno == ENOENT)                  need_expunge = 1; @@ -654,311 +654,311 @@ afr_sh_entry_expunge_entry_cbk (call_frame_t *expunge_frame, void *cookie,                  need_expunge = 1;          } -	if (need_expunge) { -		gf_log (this->name, GF_LOG_TRACE, -			"missing entry %s on %s", -			expunge_local->loc.path, -			priv->children[source]->name); +        if (need_expunge) { +                gf_log (this->name, GF_LOG_TRACE, +                        "missing entry %s on %s", +                        expunge_local->loc.path, +                        priv->children[source]->name);                  if (postparent)                          expunge_sh->parentbuf = *postparent; -		afr_sh_entry_expunge_purge (expunge_frame, this, active_src); +                afr_sh_entry_expunge_purge (expunge_frame, this, active_src); -		return 0; -	} +                return 0; +        } -	if (op_ret == 0) { -		gf_log (this->name, GF_LOG_TRACE, -			"%s exists under %s", -			expunge_local->loc.path, -			priv->children[source]->name); -	} else { -		gf_log (this->name, GF_LOG_TRACE, -			"looking up %s under %s failed (%s)", -			expunge_local->loc.path, -			priv->children[source]->name, -			strerror (op_errno)); -	} +        if (op_ret == 0) { +                gf_log (this->name, GF_LOG_TRACE, +                        "%s exists under %s", +                        expunge_local->loc.path, +                        priv->children[source]->name); +        } else { +                gf_log (this->name, GF_LOG_TRACE, +                        "looking up %s under %s failed (%s)", +                        expunge_local->loc.path, +                        priv->children[source]->name, +                        strerror (op_errno)); +        } -	AFR_STACK_DESTROY (expunge_frame); -	afr_sh_entry_expunge_entry_done (frame, this, active_src); +        AFR_STACK_DESTROY (expunge_frame); +        afr_sh_entry_expunge_entry_done (frame, this, active_src); -	return 0; +        return 0;  }  int  afr_sh_entry_expunge_entry (call_frame_t *frame, xlator_t *this, -			    gf_dirent_t *entry) +                            gf_dirent_t *entry)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *local  = NULL; -	afr_self_heal_t *sh  = NULL; -	int              ret = -1; -	call_frame_t    *expunge_frame = NULL; -	afr_local_t     *expunge_local = NULL; -	afr_self_heal_t *expunge_sh = NULL; -	int              active_src = 0; -	int              source = 0; -	int              op_errno = 0; +        afr_private_t   *priv = NULL; +        afr_local_t     *local  = NULL; +        afr_self_heal_t *sh  = NULL; +        int              ret = -1; +        call_frame_t    *expunge_frame = NULL; +        afr_local_t     *expunge_local = NULL; +        afr_self_heal_t *expunge_sh = NULL; +        int              active_src = 0; +        int              source = 0; +        int              op_errno = 0;          char            *name = NULL; -	priv = this->private; -	local = frame->local; -	sh = &local->self_heal; +        priv = this->private; +        local = frame->local; +        sh = &local->self_heal; -	active_src = sh->active_source; -	source = sh->source; +        active_src = sh->active_source; +        source = sh->source;          name = entry->d_name; -	if ((strcmp (name, ".") == 0) -	    || (strcmp (name, "..") == 0) +        if ((strcmp (name, ".") == 0) +            || (strcmp (name, "..") == 0)              || ((strcmp (local->loc.path, "/") == 0)                  && (strcmp (name, GF_REPLICATE_TRASH_DIR) == 0))) {                  gf_log (this->name, GF_LOG_TRACE, -			"skipping inspection of %s under %s", -			name, local->loc.path); -		goto out; -	} - -	gf_log (this->name, GF_LOG_TRACE, -		"inspecting existance of %s under %s", -		name, local->loc.path); - -	expunge_frame = copy_frame (frame); -	if (!expunge_frame) { -		gf_log (this->name, GF_LOG_ERROR, -			"Out of memory."); -		goto out; -	} - -	ALLOC_OR_GOTO (expunge_local, afr_local_t, out); - -	expunge_frame->local = expunge_local; -	expunge_sh = &expunge_local->self_heal; -	expunge_sh->sh_frame = frame; -	expunge_sh->active_source = active_src; +                        "skipping inspection of %s under %s", +                        name, local->loc.path); +                goto out; +        } + +        gf_log (this->name, GF_LOG_TRACE, +                "inspecting existance of %s under %s", +                name, local->loc.path); + +        expunge_frame = copy_frame (frame); +        if (!expunge_frame) { +                gf_log (this->name, GF_LOG_ERROR, +                        "Out of memory."); +                goto out; +        } + +        ALLOC_OR_GOTO (expunge_local, afr_local_t, out); + +        expunge_frame->local = expunge_local; +        expunge_sh = &expunge_local->self_heal; +        expunge_sh->sh_frame = frame; +        expunge_sh->active_source = active_src;          expunge_sh->entrybuf = entry->d_stat; -	ret = build_child_loc (this, &expunge_local->loc, &local->loc, name); -	if (ret != 0) { -		goto out; -	} +        ret = build_child_loc (this, &expunge_local->loc, &local->loc, name); +        if (ret != 0) { +                goto out; +        } -	gf_log (this->name, GF_LOG_TRACE, -		"looking up %s on %s", expunge_local->loc.path, -		priv->children[source]->name); +        gf_log (this->name, GF_LOG_TRACE, +                "looking up %s on %s", expunge_local->loc.path, +                priv->children[source]->name); -	STACK_WIND_COOKIE (expunge_frame, -			   afr_sh_entry_expunge_entry_cbk, -			   (void *) (long) source, -			   priv->children[source], -			   priv->children[source]->fops->lookup, -			   &expunge_local->loc, 0); +        STACK_WIND_COOKIE (expunge_frame, +                           afr_sh_entry_expunge_entry_cbk, +                           (void *) (long) source, +                           priv->children[source], +                           priv->children[source]->fops->lookup, +                           &expunge_local->loc, 0); -	ret = 0; +        ret = 0;  out: -	if (ret == -1) -		afr_sh_entry_expunge_entry_done (frame, this, active_src); +        if (ret == -1) +                afr_sh_entry_expunge_entry_done (frame, this, active_src); -	return 0; +        return 0;  }  int  afr_sh_entry_expunge_readdir_cbk (call_frame_t *frame, void *cookie, -				  xlator_t *this, -				  int32_t op_ret, int32_t op_errno, -				  gf_dirent_t *entries) +                                  xlator_t *this, +                                  int32_t op_ret, int32_t op_errno, +                                  gf_dirent_t *entries)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *local  = NULL; -	afr_self_heal_t *sh  = NULL; -	gf_dirent_t     *entry = NULL; -	off_t            last_offset = 0; -	int              active_src = 0; -	int              entry_count = 0; - -	priv = this->private; -	local = frame->local; -	sh = &local->self_heal; - -	active_src = sh->active_source; - -	if (op_ret <= 0) { -		if (op_ret < 0) { -			gf_log (this->name, GF_LOG_DEBUG, -				"readdir of %s on subvolume %s failed (%s)", -				local->loc.path, -				priv->children[active_src]->name, -				strerror (op_errno)); -		} else { -			gf_log (this->name, GF_LOG_TRACE, -				"readdir of %s on subvolume %s complete", -				local->loc.path, -				priv->children[active_src]->name); -		} - -		afr_sh_entry_expunge_all (frame, this); -		return 0; -	} - -	list_for_each_entry (entry, &entries->list, list) { -		last_offset = entry->d_off; +        afr_private_t   *priv = NULL; +        afr_local_t     *local  = NULL; +        afr_self_heal_t *sh  = NULL; +        gf_dirent_t     *entry = NULL; +        off_t            last_offset = 0; +        int              active_src = 0; +        int              entry_count = 0; + +        priv = this->private; +        local = frame->local; +        sh = &local->self_heal; + +        active_src = sh->active_source; + +        if (op_ret <= 0) { +                if (op_ret < 0) { +                        gf_log (this->name, GF_LOG_DEBUG, +                                "readdir of %s on subvolume %s failed (%s)", +                                local->loc.path, +                                priv->children[active_src]->name, +                                strerror (op_errno)); +                } else { +                        gf_log (this->name, GF_LOG_TRACE, +                                "readdir of %s on subvolume %s complete", +                                local->loc.path, +                                priv->children[active_src]->name); +                } + +                afr_sh_entry_expunge_all (frame, this); +                return 0; +        } + +        list_for_each_entry (entry, &entries->list, list) { +                last_offset = entry->d_off;                  entry_count++; -	} +        } -	gf_log (this->name, GF_LOG_TRACE, -		"readdir'ed %d entries from %s", -		entry_count, priv->children[active_src]->name); +        gf_log (this->name, GF_LOG_TRACE, +                "readdir'ed %d entries from %s", +                entry_count, priv->children[active_src]->name); -	sh->offset = last_offset; -	local->call_count = entry_count; +        sh->offset = last_offset; +        local->call_count = entry_count; -	list_for_each_entry (entry, &entries->list, list) { +        list_for_each_entry (entry, &entries->list, list) {                  afr_sh_entry_expunge_entry (frame, this, entry); -	} +        } -	return 0; +        return 0;  }  int  afr_sh_entry_expunge_subvol (call_frame_t *frame, xlator_t *this, -			     int active_src) +                             int active_src)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *local  = NULL; -	afr_self_heal_t *sh  = NULL; +        afr_private_t   *priv = NULL; +        afr_local_t     *local  = NULL; +        afr_self_heal_t *sh  = NULL; -	priv = this->private; -	local = frame->local; -	sh = &local->self_heal; +        priv = this->private; +        local = frame->local; +        sh = &local->self_heal; -	STACK_WIND (frame, afr_sh_entry_expunge_readdir_cbk, -		    priv->children[active_src], -		    priv->children[active_src]->fops->readdirp, -		    sh->healing_fd, sh->block_size, sh->offset); +        STACK_WIND (frame, afr_sh_entry_expunge_readdir_cbk, +                    priv->children[active_src], +                    priv->children[active_src]->fops->readdirp, +                    sh->healing_fd, sh->block_size, sh->offset); -	return 0; +        return 0;  }  int  afr_sh_entry_expunge_all (call_frame_t *frame, xlator_t *this)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *local  = NULL; -	afr_self_heal_t *sh  = NULL; -	int              active_src = -1; +        afr_private_t   *priv = NULL; +        afr_local_t     *local  = NULL; +        afr_self_heal_t *sh  = NULL; +        int              active_src = -1; -	priv = this->private; -	local = frame->local; -	sh = &local->self_heal; +        priv = this->private; +        local = frame->local; +        sh = &local->self_heal; -	sh->offset = 0; +        sh->offset = 0; -	if (sh->source == -1) { -		gf_log (this->name, GF_LOG_TRACE, -			"no active sources for %s to expunge entries", -			local->loc.path); -		goto out; -	} +        if (sh->source == -1) { +                gf_log (this->name, GF_LOG_TRACE, +                        "no active sources for %s to expunge entries", +                        local->loc.path); +                goto out; +        } -	active_src = next_active_sink (frame, this, sh->active_source); -	sh->active_source = active_src; +        active_src = next_active_sink (frame, this, sh->active_source); +        sh->active_source = active_src; -	if (sh->op_failed) { -		goto out; -	} +        if (sh->op_failed) { +                goto out; +        } -	if (active_src == -1) { -		/* completed creating missing files on all subvolumes */ -		goto out; -	} +        if (active_src == -1) { +                /* completed creating missing files on all subvolumes */ +                goto out; +        } -	gf_log (this->name, GF_LOG_TRACE, -		"expunging entries of %s on %s to other sinks", -		local->loc.path, priv->children[active_src]->name); +        gf_log (this->name, GF_LOG_TRACE, +                "expunging entries of %s on %s to other sinks", +                local->loc.path, priv->children[active_src]->name); -	afr_sh_entry_expunge_subvol (frame, this, active_src); +        afr_sh_entry_expunge_subvol (frame, this, active_src); -	return 0; +        return 0;  out: -	afr_sh_entry_impunge_all (frame, this); -	return 0; +        afr_sh_entry_impunge_all (frame, this); +        return 0;  }  int  afr_sh_entry_impunge_entry_done (call_frame_t *frame, xlator_t *this, -				 int active_src) +                                 int active_src)  { -	int              call_count = 0; +        int              call_count = 0; -	call_count = afr_frame_return (frame); +        call_count = afr_frame_return (frame); -	if (call_count == 0) -		afr_sh_entry_impunge_subvol (frame, this, active_src); +        if (call_count == 0) +                afr_sh_entry_impunge_subvol (frame, this, active_src); -	return 0; +        return 0;  }  int  afr_sh_entry_impunge_setattr_cbk (call_frame_t *impunge_frame, void *cookie, -				  xlator_t *this, +                                  xlator_t *this,                                    int32_t op_ret, int32_t op_errno,                                    struct iatt *preop, struct iatt *postop)  { -	int              call_count = 0; -	afr_private_t   *priv = NULL; -	afr_local_t     *impunge_local = NULL; -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; -	afr_self_heal_t *impunge_sh = NULL; -	call_frame_t    *frame = NULL; -	int              active_src = 0; -	int              child_index = 0; - -	priv = this->private; -	impunge_local = impunge_frame->local; -	impunge_sh = &impunge_local->self_heal; -	frame = impunge_sh->sh_frame; +        int              call_count = 0; +        afr_private_t   *priv = NULL; +        afr_local_t     *impunge_local = NULL; +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; +        afr_self_heal_t *impunge_sh = NULL; +        call_frame_t    *frame = NULL; +        int              active_src = 0; +        int              child_index = 0; + +        priv = this->private; +        impunge_local = impunge_frame->local; +        impunge_sh = &impunge_local->self_heal; +        frame = impunge_sh->sh_frame;          local = frame->local;          sh    = &local->self_heal;          active_src = sh->active_source; -	child_index = (long) cookie; - -	if (op_ret == 0) { -		gf_log (this->name, GF_LOG_TRACE, -			"setattr done for %s on %s", -			impunge_local->loc.path, -			priv->children[child_index]->name); -	} else { -		gf_log (this->name, GF_LOG_DEBUG, -			"setattr (%s) on %s failed (%s)", -			impunge_local->loc.path, -			priv->children[child_index]->name, -			strerror (op_errno)); -	} - -	LOCK (&impunge_frame->lock); -	{ -		call_count = --impunge_local->call_count; -	} -	UNLOCK (&impunge_frame->lock); - -	if (call_count == 0) { -		AFR_STACK_DESTROY (impunge_frame); -		afr_sh_entry_impunge_entry_done (frame, this, active_src); -	} - -	return 0; +        child_index = (long) cookie; + +        if (op_ret == 0) { +                gf_log (this->name, GF_LOG_TRACE, +                        "setattr done for %s on %s", +                        impunge_local->loc.path, +                        priv->children[child_index]->name); +        } else { +                gf_log (this->name, GF_LOG_DEBUG, +                        "setattr (%s) on %s failed (%s)", +                        impunge_local->loc.path, +                        priv->children[child_index]->name, +                        strerror (op_errno)); +        } + +        LOCK (&impunge_frame->lock); +        { +                call_count = --impunge_local->call_count; +        } +        UNLOCK (&impunge_frame->lock); + +        if (call_count == 0) { +                AFR_STACK_DESTROY (impunge_frame); +                afr_sh_entry_impunge_entry_done (frame, this, active_src); +        } + +        return 0;  } @@ -968,31 +968,31 @@ afr_sh_entry_impunge_xattrop_cbk (call_frame_t *impunge_frame, void *cookie,                                    int32_t op_ret, int32_t op_errno,                                    dict_t *xattr)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *impunge_local = NULL; -	afr_self_heal_t *impunge_sh = NULL; -	int              child_index = 0; +        afr_private_t   *priv = NULL; +        afr_local_t     *impunge_local = NULL; +        afr_self_heal_t *impunge_sh = NULL; +        int              child_index = 0;          struct iatt stbuf;          int32_t     valid = 0; -	priv          = this->private; -	impunge_local = impunge_frame->local; -	impunge_sh    = &impunge_local->self_heal; +        priv          = this->private; +        impunge_local = impunge_frame->local; +        impunge_sh    = &impunge_local->self_heal; -	child_index = (long) cookie; +        child_index = (long) cookie; -	gf_log (this->name, GF_LOG_TRACE, -		"setting ownership of %s on %s to %d/%d", -		impunge_local->loc.path, -		priv->children[child_index]->name, -		impunge_local->cont.lookup.buf.ia_uid, -		impunge_local->cont.lookup.buf.ia_gid); +        gf_log (this->name, GF_LOG_TRACE, +                "setting ownership of %s on %s to %d/%d", +                impunge_local->loc.path, +                priv->children[child_index]->name, +                impunge_local->cont.lookup.buf.ia_uid, +                impunge_local->cont.lookup.buf.ia_gid); -	stbuf.ia_atime = impunge_local->cont.lookup.buf.ia_atime; -	stbuf.ia_atime_nsec = impunge_local->cont.lookup.buf.ia_atime_nsec; -	stbuf.ia_mtime = impunge_local->cont.lookup.buf.ia_mtime; -	stbuf.ia_mtime_nsec = impunge_local->cont.lookup.buf.ia_mtime_nsec; +        stbuf.ia_atime = impunge_local->cont.lookup.buf.ia_atime; +        stbuf.ia_atime_nsec = impunge_local->cont.lookup.buf.ia_atime_nsec; +        stbuf.ia_mtime = impunge_local->cont.lookup.buf.ia_mtime; +        stbuf.ia_mtime_nsec = impunge_local->cont.lookup.buf.ia_mtime_nsec;          stbuf.ia_uid = impunge_local->cont.lookup.buf.ia_uid;          stbuf.ia_gid = impunge_local->cont.lookup.buf.ia_gid; @@ -1000,11 +1000,11 @@ afr_sh_entry_impunge_xattrop_cbk (call_frame_t *impunge_frame, void *cookie,          valid = GF_SET_ATTR_UID   | GF_SET_ATTR_GID |                  GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME; -	STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_setattr_cbk, -			   (void *) (long) child_index, -			   priv->children[child_index], -			   priv->children[child_index]->fops->setattr, -			   &impunge_local->loc, +        STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_setattr_cbk, +                           (void *) (long) child_index, +                           priv->children[child_index], +                           priv->children[child_index]->fops->setattr, +                           &impunge_local->loc,                             &stbuf, valid);          return 0;  } @@ -1035,19 +1035,19 @@ afr_sh_entry_impunge_parent_setattr_cbk (call_frame_t *setattr_frame,  int  afr_sh_entry_impunge_newfile_cbk (call_frame_t *impunge_frame, void *cookie, -				  xlator_t *this, -				  int32_t op_ret, int32_t op_errno, +                                  xlator_t *this, +                                  int32_t op_ret, int32_t op_errno,                                    inode_t *inode, struct iatt *stbuf,                                    struct iatt *preparent,                                    struct iatt *postparent)  { -	int              call_count = 0; -	afr_private_t   *priv = NULL; -	afr_local_t     *impunge_local = NULL; -	afr_self_heal_t *impunge_sh = NULL; -	call_frame_t    *frame = NULL; -	int              active_src = 0; -	int              child_index = 0; +        int              call_count = 0; +        afr_private_t   *priv = NULL; +        afr_local_t     *impunge_local = NULL; +        afr_self_heal_t *impunge_sh = NULL; +        call_frame_t    *frame = NULL; +        int              active_src = 0; +        int              child_index = 0;          int              pending_array[3] = {0, };          dict_t          *xattr = NULL;          int              ret = 0; @@ -1060,26 +1060,26 @@ afr_sh_entry_impunge_newfile_cbk (call_frame_t *impunge_frame, void *cookie,          loc_t *parent_loc = NULL;          struct iatt parentbuf; -	priv = this->private; -	impunge_local = impunge_frame->local; -	impunge_sh = &impunge_local->self_heal; -	frame = impunge_sh->sh_frame; +        priv = this->private; +        impunge_local = impunge_frame->local; +        impunge_sh = &impunge_local->self_heal; +        frame = impunge_sh->sh_frame;          local = frame->local;          sh    = &local->self_heal;          active_src = sh->active_source; -	child_index = (long) cookie; +        child_index = (long) cookie; -	if (op_ret == -1) { -		gf_log (this->name, GF_LOG_DEBUG, -			"creation of %s on %s failed (%s)", -			impunge_local->loc.path, -			priv->children[child_index]->name, -			strerror (op_errno)); -		goto out; -	} +        if (op_ret == -1) { +                gf_log (this->name, GF_LOG_DEBUG, +                        "creation of %s on %s failed (%s)", +                        impunge_local->loc.path, +                        priv->children[child_index]->name, +                        strerror (op_errno)); +                goto out; +        } -	inode->ia_type = stbuf->ia_type; +        inode->ia_type = stbuf->ia_type;          xattr = get_new_dict ();          dict_ref (xattr); @@ -1106,11 +1106,11 @@ afr_sh_entry_impunge_newfile_cbk (call_frame_t *impunge_frame, void *cookie,                                  gf_afr_mt_loc_t);          afr_build_parent_loc (parent_loc, &impunge_local->loc); -	STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_xattrop_cbk, -			   (void *) (long) child_index, -			   priv->children[active_src], -			   priv->children[active_src]->fops->xattrop, -			   &impunge_local->loc, GF_XATTROP_ADD_ARRAY, xattr); +        STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_xattrop_cbk, +                           (void *) (long) child_index, +                           priv->children[active_src], +                           priv->children[active_src]->fops->xattrop, +                           &impunge_local->loc, GF_XATTROP_ADD_ARRAY, xattr);          STACK_WIND_COOKIE (setattr_frame, afr_sh_entry_impunge_parent_setattr_cbk,                             (void *) (long) parent_loc, @@ -1120,41 +1120,41 @@ afr_sh_entry_impunge_newfile_cbk (call_frame_t *impunge_frame, void *cookie,          dict_unref (xattr); -	return 0; +        return 0;  out: -	LOCK (&impunge_frame->lock); -	{ -		call_count = --impunge_local->call_count; -	} -	UNLOCK (&impunge_frame->lock); - -	if (call_count == 0) { -		AFR_STACK_DESTROY (impunge_frame); -		afr_sh_entry_impunge_entry_done (frame, this, active_src); -	} - -	return 0; +        LOCK (&impunge_frame->lock); +        { +                call_count = --impunge_local->call_count; +        } +        UNLOCK (&impunge_frame->lock); + +        if (call_count == 0) { +                AFR_STACK_DESTROY (impunge_frame); +                afr_sh_entry_impunge_entry_done (frame, this, active_src); +        } + +        return 0;  }  int  afr_sh_entry_impunge_mknod (call_frame_t *impunge_frame, xlator_t *this, -			    int child_index, struct iatt *stbuf) +                            int child_index, struct iatt *stbuf)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *impunge_local = NULL; +        afr_private_t   *priv = NULL; +        afr_local_t     *impunge_local = NULL;          dict_t          *dict = NULL;          int ret = 0; -	priv = this->private; -	impunge_local = impunge_frame->local; +        priv = this->private; +        impunge_local = impunge_frame->local; -	gf_log (this->name, GF_LOG_DEBUG, -		"creating missing file %s on %s", -		impunge_local->loc.path, -		priv->children[child_index]->name); +        gf_log (this->name, GF_LOG_DEBUG, +                "creating missing file %s on %s", +                impunge_local->loc.path, +                priv->children[child_index]->name);          dict = dict_new ();          if (!dict) @@ -1164,34 +1164,34 @@ afr_sh_entry_impunge_mknod (call_frame_t *impunge_frame, xlator_t *this,          if (ret)                  gf_log (this->name, GF_LOG_DEBUG, "gfid set failed"); -	STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_newfile_cbk, -			   (void *) (long) child_index, -			   priv->children[child_index], -			   priv->children[child_index]->fops->mknod, -			   &impunge_local->loc, -			   st_mode_from_ia (stbuf->ia_prot, stbuf->ia_type), +        STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_newfile_cbk, +                           (void *) (long) child_index, +                           priv->children[child_index], +                           priv->children[child_index]->fops->mknod, +                           &impunge_local->loc, +                           st_mode_from_ia (stbuf->ia_prot, stbuf->ia_type),                             stbuf->ia_rdev, dict);          if (dict)                  dict_unref (dict); -	return 0; +        return 0;  }  int  afr_sh_entry_impunge_mkdir (call_frame_t *impunge_frame, xlator_t *this, -			    int child_index, struct iatt *stbuf) +                            int child_index, struct iatt *stbuf)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *impunge_local = NULL; +        afr_private_t   *priv = NULL; +        afr_local_t     *impunge_local = NULL;          dict_t          *dict = NULL;          int ret = 0; -	priv = this->private; -	impunge_local = impunge_frame->local; +        priv = this->private; +        impunge_local = impunge_frame->local;          dict = dict_new ();          if (!dict) { @@ -1204,39 +1204,39 @@ afr_sh_entry_impunge_mkdir (call_frame_t *impunge_frame, xlator_t *this,          if (ret)                  gf_log (this->name, GF_LOG_DEBUG, "gfid set failed"); -	gf_log (this->name, GF_LOG_DEBUG, -		"creating missing directory %s on %s", -		impunge_local->loc.path, -		priv->children[child_index]->name); +        gf_log (this->name, GF_LOG_DEBUG, +                "creating missing directory %s on %s", +                impunge_local->loc.path, +                priv->children[child_index]->name); -	STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_newfile_cbk, -			   (void *) (long) child_index, -			   priv->children[child_index], -			   priv->children[child_index]->fops->mkdir, -			   &impunge_local->loc, +        STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_newfile_cbk, +                           (void *) (long) child_index, +                           priv->children[child_index], +                           priv->children[child_index]->fops->mkdir, +                           &impunge_local->loc,                             st_mode_from_ia (stbuf->ia_prot, stbuf->ia_type),                             dict);          if (dict)                  dict_unref (dict); -	return 0; +        return 0;  }  int  afr_sh_entry_impunge_symlink (call_frame_t *impunge_frame, xlator_t *this, -			      int child_index, const char *linkname) +                              int child_index, const char *linkname)  { -	afr_private_t   *priv          = NULL; -	afr_local_t     *impunge_local = NULL; +        afr_private_t   *priv          = NULL; +        afr_local_t     *impunge_local = NULL;          dict_t          *dict          = NULL;          struct iatt     *buf           = NULL;          int ret = 0; -	priv = this->private; -	impunge_local = impunge_frame->local; +        priv = this->private; +        impunge_local = impunge_frame->local;          buf = &impunge_local->cont.symlink.buf; @@ -1252,21 +1252,21 @@ afr_sh_entry_impunge_symlink (call_frame_t *impunge_frame, xlator_t *this,                  gf_log (this->name, GF_LOG_DEBUG,                          "dict set gfid failed"); -	gf_log (this->name, GF_LOG_DEBUG, -		"creating missing symlink %s -> %s on %s", -		impunge_local->loc.path, linkname, -		priv->children[child_index]->name); +        gf_log (this->name, GF_LOG_DEBUG, +                "creating missing symlink %s -> %s on %s", +                impunge_local->loc.path, linkname, +                priv->children[child_index]->name); -	STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_newfile_cbk, -			   (void *) (long) child_index, -			   priv->children[child_index], -			   priv->children[child_index]->fops->symlink, -			   linkname, &impunge_local->loc, dict); +        STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_newfile_cbk, +                           (void *) (long) child_index, +                           priv->children[child_index], +                           priv->children[child_index]->fops->symlink, +                           linkname, &impunge_local->loc, dict);          if (dict)                  dict_unref (dict); -	return 0; +        return 0;  } @@ -1278,47 +1278,47 @@ afr_sh_entry_impunge_symlink_unlink_cbk (call_frame_t *impunge_frame,                                           struct iatt *postparent)  {          afr_private_t   *priv = NULL; -	afr_local_t     *impunge_local = NULL; -	afr_self_heal_t *impunge_sh = NULL; -	int              child_index = -1; -	call_frame_t    *frame = NULL; -	int              call_count = -1; -	int              active_src = -1; - -	priv          = this->private; -	impunge_local = impunge_frame->local; -	impunge_sh    = &impunge_local->self_heal; -	frame         = impunge_sh->sh_frame; -	active_src    = impunge_sh->active_source; - -	child_index = (long) cookie; - -	if (op_ret == -1) { -		gf_log (this->name, GF_LOG_DEBUG, -			"unlink of %s on %s failed (%s)", -			impunge_local->loc.path, -			priv->children[child_index]->name, -			strerror (op_errno)); -		goto out; -	} +        afr_local_t     *impunge_local = NULL; +        afr_self_heal_t *impunge_sh = NULL; +        int              child_index = -1; +        call_frame_t    *frame = NULL; +        int              call_count = -1; +        int              active_src = -1; + +        priv          = this->private; +        impunge_local = impunge_frame->local; +        impunge_sh    = &impunge_local->self_heal; +        frame         = impunge_sh->sh_frame; +        active_src    = impunge_sh->active_source; + +        child_index = (long) cookie; + +        if (op_ret == -1) { +                gf_log (this->name, GF_LOG_DEBUG, +                        "unlink of %s on %s failed (%s)", +                        impunge_local->loc.path, +                        priv->children[child_index]->name, +                        strerror (op_errno)); +                goto out; +        }          afr_sh_entry_impunge_symlink (impunge_frame, this, child_index,                                        impunge_sh->linkname);          return 0;  out: -	LOCK (&impunge_frame->lock); -	{ -		call_count = --impunge_local->call_count; -	} -	UNLOCK (&impunge_frame->lock); - -	if (call_count == 0) { -		AFR_STACK_DESTROY (impunge_frame); -		afr_sh_entry_impunge_entry_done (frame, this, active_src); -	} - -	return 0; +        LOCK (&impunge_frame->lock); +        { +                call_count = --impunge_local->call_count; +        } +        UNLOCK (&impunge_frame->lock); + +        if (call_count == 0) { +                AFR_STACK_DESTROY (impunge_frame); +                afr_sh_entry_impunge_entry_done (frame, this, active_src); +        } + +        return 0;  } @@ -1326,16 +1326,16 @@ int  afr_sh_entry_impunge_symlink_unlink (call_frame_t *impunge_frame, xlator_t *this,                                       int child_index)  { -	afr_private_t   *priv          = NULL; -	afr_local_t     *impunge_local = NULL; +        afr_private_t   *priv          = NULL; +        afr_local_t     *impunge_local = NULL; -	priv          = this->private; -	impunge_local = impunge_frame->local; +        priv          = this->private; +        impunge_local = impunge_frame->local; -	gf_log (this->name, GF_LOG_DEBUG, -		"unlinking symlink %s with wrong target on %s", -		impunge_local->loc.path, -		priv->children[child_index]->name); +        gf_log (this->name, GF_LOG_DEBUG, +                "unlinking symlink %s with wrong target on %s", +                impunge_local->loc.path, +                priv->children[child_index]->name);          STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_symlink_unlink_cbk,                             (void *) (long) child_index, @@ -1354,29 +1354,29 @@ afr_sh_entry_impunge_readlink_sink_cbk (call_frame_t *impunge_frame, void *cooki                                          const char *linkname, struct iatt *sbuf)  {          afr_private_t   *priv = NULL; -	afr_local_t     *impunge_local = NULL; -	afr_self_heal_t *impunge_sh = NULL; -	int              child_index = -1; -	call_frame_t    *frame = NULL; -	int              call_count = -1; -	int              active_src = -1; - -	priv          = this->private; -	impunge_local = impunge_frame->local; -	impunge_sh    = &impunge_local->self_heal; -	frame         = impunge_sh->sh_frame; -	active_src    = impunge_sh->active_source; - -	child_index = (long) cookie; - -	if ((op_ret == -1) && (op_errno != ENOENT)) { -		gf_log (this->name, GF_LOG_DEBUG, -			"readlink of %s on %s failed (%s)", -			impunge_local->loc.path, -			priv->children[active_src]->name, -			strerror (op_errno)); -		goto out; -	} +        afr_local_t     *impunge_local = NULL; +        afr_self_heal_t *impunge_sh = NULL; +        int              child_index = -1; +        call_frame_t    *frame = NULL; +        int              call_count = -1; +        int              active_src = -1; + +        priv          = this->private; +        impunge_local = impunge_frame->local; +        impunge_sh    = &impunge_local->self_heal; +        frame         = impunge_sh->sh_frame; +        active_src    = impunge_sh->active_source; + +        child_index = (long) cookie; + +        if ((op_ret == -1) && (op_errno != ENOENT)) { +                gf_log (this->name, GF_LOG_DEBUG, +                        "readlink of %s on %s failed (%s)", +                        impunge_local->loc.path, +                        priv->children[active_src]->name, +                        strerror (op_errno)); +                goto out; +        }          /* symlink doesn't exist on the sink */ @@ -1403,18 +1403,18 @@ afr_sh_entry_impunge_readlink_sink_cbk (call_frame_t *impunge_frame, void *cooki          }  out: -	LOCK (&impunge_frame->lock); -	{ -		call_count = --impunge_local->call_count; -	} -	UNLOCK (&impunge_frame->lock); - -	if (call_count == 0) { -		AFR_STACK_DESTROY (impunge_frame); -		afr_sh_entry_impunge_entry_done (frame, this, active_src); -	} - -	return 0; +        LOCK (&impunge_frame->lock); +        { +                call_count = --impunge_local->call_count; +        } +        UNLOCK (&impunge_frame->lock); + +        if (call_count == 0) { +                AFR_STACK_DESTROY (impunge_frame); +                afr_sh_entry_impunge_entry_done (frame, this, active_src); +        } + +        return 0;  } @@ -1422,237 +1422,237 @@ int  afr_sh_entry_impunge_readlink_sink (call_frame_t *impunge_frame, xlator_t *this,                                      int child_index)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *impunge_local = NULL; +        afr_private_t   *priv = NULL; +        afr_local_t     *impunge_local = NULL; -	priv = this->private; -	impunge_local = impunge_frame->local; +        priv = this->private; +        impunge_local = impunge_frame->local; -	gf_log (this->name, GF_LOG_DEBUG, -		"checking symlink target of %s on %s", -		impunge_local->loc.path, priv->children[child_index]->name); +        gf_log (this->name, GF_LOG_DEBUG, +                "checking symlink target of %s on %s", +                impunge_local->loc.path, priv->children[child_index]->name); -	STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_readlink_sink_cbk, -			   (void *) (long) child_index, -			   priv->children[child_index], -			   priv->children[child_index]->fops->readlink, -			   &impunge_local->loc, 4096); +        STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_readlink_sink_cbk, +                           (void *) (long) child_index, +                           priv->children[child_index], +                           priv->children[child_index]->fops->readlink, +                           &impunge_local->loc, 4096); -	return 0; +        return 0;  }  int  afr_sh_entry_impunge_readlink_cbk (call_frame_t *impunge_frame, void *cookie, -				   xlator_t *this, -				   int32_t op_ret, int32_t op_errno, -				   const char *linkname, struct iatt *sbuf) +                                   xlator_t *this, +                                   int32_t op_ret, int32_t op_errno, +                                   const char *linkname, struct iatt *sbuf)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *impunge_local = NULL; -	afr_self_heal_t *impunge_sh = NULL; -	int              child_index = -1; -	call_frame_t    *frame = NULL; -	int              call_count = -1; -	int              active_src = -1; - -	priv = this->private; -	impunge_local = impunge_frame->local; -	impunge_sh = &impunge_local->self_heal; -	frame = impunge_sh->sh_frame; -	active_src = impunge_sh->active_source; - -	child_index = (long) cookie; - -	if (op_ret == -1) { -		gf_log (this->name, GF_LOG_DEBUG, -			"readlink of %s on %s failed (%s)", -			impunge_local->loc.path, -			priv->children[active_src]->name, -			strerror (op_errno)); -		goto out; -	} +        afr_private_t   *priv = NULL; +        afr_local_t     *impunge_local = NULL; +        afr_self_heal_t *impunge_sh = NULL; +        int              child_index = -1; +        call_frame_t    *frame = NULL; +        int              call_count = -1; +        int              active_src = -1; + +        priv = this->private; +        impunge_local = impunge_frame->local; +        impunge_sh = &impunge_local->self_heal; +        frame = impunge_sh->sh_frame; +        active_src = impunge_sh->active_source; + +        child_index = (long) cookie; + +        if (op_ret == -1) { +                gf_log (this->name, GF_LOG_DEBUG, +                        "readlink of %s on %s failed (%s)", +                        impunge_local->loc.path, +                        priv->children[active_src]->name, +                        strerror (op_errno)); +                goto out; +        }          impunge_sh->linkname = gf_strdup (linkname); -	afr_sh_entry_impunge_readlink_sink (impunge_frame, this, child_index); +        afr_sh_entry_impunge_readlink_sink (impunge_frame, this, child_index); -	return 0; +        return 0;  out: -	LOCK (&impunge_frame->lock); -	{ -		call_count = --impunge_local->call_count; -	} -	UNLOCK (&impunge_frame->lock); - -	if (call_count == 0) { -		AFR_STACK_DESTROY (impunge_frame); -		afr_sh_entry_impunge_entry_done (frame, this, active_src); -	} - -	return 0; +        LOCK (&impunge_frame->lock); +        { +                call_count = --impunge_local->call_count; +        } +        UNLOCK (&impunge_frame->lock); + +        if (call_count == 0) { +                AFR_STACK_DESTROY (impunge_frame); +                afr_sh_entry_impunge_entry_done (frame, this, active_src); +        } + +        return 0;  }  int  afr_sh_entry_impunge_readlink (call_frame_t *impunge_frame, xlator_t *this, -			       int child_index, struct iatt *stbuf) +                               int child_index, struct iatt *stbuf)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *impunge_local = NULL; -	afr_self_heal_t *impunge_sh = NULL; -	int              active_src = -1; - -	priv = this->private; -	impunge_local = impunge_frame->local; -	impunge_sh = &impunge_local->self_heal; -	active_src = impunge_sh->active_source; +        afr_private_t   *priv = NULL; +        afr_local_t     *impunge_local = NULL; +        afr_self_heal_t *impunge_sh = NULL; +        int              active_src = -1; + +        priv = this->private; +        impunge_local = impunge_frame->local; +        impunge_sh = &impunge_local->self_heal; +        active_src = impunge_sh->active_source;          impunge_local->cont.symlink.buf = *stbuf; -	STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_readlink_cbk, -			   (void *) (long) child_index, -			   priv->children[active_src], -			   priv->children[active_src]->fops->readlink, -			   &impunge_local->loc, 4096); +        STACK_WIND_COOKIE (impunge_frame, afr_sh_entry_impunge_readlink_cbk, +                           (void *) (long) child_index, +                           priv->children[active_src], +                           priv->children[active_src]->fops->readlink, +                           &impunge_local->loc, 4096); -	return 0; +        return 0;  }  int  afr_sh_entry_impunge_recreate_lookup_cbk (call_frame_t *impunge_frame, -					  void *cookie, xlator_t *this, -					  int32_t op_ret, int32_t op_errno, -					  inode_t *inode, struct iatt *buf, -					  dict_t *xattr,struct iatt *postparent) +                                          void *cookie, xlator_t *this, +                                          int32_t op_ret, int32_t op_errno, +                                          inode_t *inode, struct iatt *buf, +                                          dict_t *xattr,struct iatt *postparent)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *impunge_local = NULL; -	afr_self_heal_t *impunge_sh = NULL; -	int              active_src = 0; -	int              type = 0; -	int              child_index = 0; -	call_frame_t    *frame = NULL; -	int              call_count = 0; - -	priv = this->private; -	impunge_local = impunge_frame->local; -	impunge_sh = &impunge_local->self_heal; -	frame = impunge_sh->sh_frame; - -	child_index = (long) cookie; - -	active_src = impunge_sh->active_source; - -	if (op_ret != 0) { -		gf_log (this->name, GF_LOG_TRACE, -			"looking up %s on %s (for %s) failed (%s)", -			impunge_local->loc.path, -			priv->children[active_src]->name, -			priv->children[child_index]->name, -			strerror (op_errno)); -		goto out; -	} +        afr_private_t   *priv = NULL; +        afr_local_t     *impunge_local = NULL; +        afr_self_heal_t *impunge_sh = NULL; +        int              active_src = 0; +        int              type = 0; +        int              child_index = 0; +        call_frame_t    *frame = NULL; +        int              call_count = 0; + +        priv = this->private; +        impunge_local = impunge_frame->local; +        impunge_sh = &impunge_local->self_heal; +        frame = impunge_sh->sh_frame; + +        child_index = (long) cookie; + +        active_src = impunge_sh->active_source; + +        if (op_ret != 0) { +                gf_log (this->name, GF_LOG_TRACE, +                        "looking up %s on %s (for %s) failed (%s)", +                        impunge_local->loc.path, +                        priv->children[active_src]->name, +                        priv->children[child_index]->name, +                        strerror (op_errno)); +                goto out; +        }          impunge_sh->parentbuf = *postparent; -	impunge_local->cont.lookup.buf = *buf; -	type = buf->ia_type; - -	switch (type) { -	case IA_IFSOCK: -	case IA_IFREG: -	case IA_IFBLK: -	case IA_IFCHR: -	case IA_IFIFO: -		afr_sh_entry_impunge_mknod (impunge_frame, this, -					    child_index, buf); -		break; -	case IA_IFLNK: -		afr_sh_entry_impunge_readlink (impunge_frame, this, -					       child_index, buf); -		break; -	case IA_IFDIR: -		afr_sh_entry_impunge_mkdir (impunge_frame, this, -					    child_index, buf); -		break; -	default: -		gf_log (this->name, GF_LOG_ERROR, -			"%s has unknown file type on %s: 0%o", -			impunge_local->loc.path, -			priv->children[active_src]->name, type); -		goto out; -		break; -	} - -	return 0; +        impunge_local->cont.lookup.buf = *buf; +        type = buf->ia_type; + +        switch (type) { +        case IA_IFSOCK: +        case IA_IFREG: +        case IA_IFBLK: +        case IA_IFCHR: +        case IA_IFIFO: +                afr_sh_entry_impunge_mknod (impunge_frame, this, +                                            child_index, buf); +                break; +        case IA_IFLNK: +                afr_sh_entry_impunge_readlink (impunge_frame, this, +                                               child_index, buf); +                break; +        case IA_IFDIR: +                afr_sh_entry_impunge_mkdir (impunge_frame, this, +                                            child_index, buf); +                break; +        default: +                gf_log (this->name, GF_LOG_ERROR, +                        "%s has unknown file type on %s: 0%o", +                        impunge_local->loc.path, +                        priv->children[active_src]->name, type); +                goto out; +                break; +        } + +        return 0;  out: -	LOCK (&impunge_frame->lock); -	{ -		call_count = --impunge_local->call_count; -	} -	UNLOCK (&impunge_frame->lock); - -	if (call_count == 0) { -		AFR_STACK_DESTROY (impunge_frame); -		afr_sh_entry_impunge_entry_done (frame, this, active_src); -	} - -	return 0; +        LOCK (&impunge_frame->lock); +        { +                call_count = --impunge_local->call_count; +        } +        UNLOCK (&impunge_frame->lock); + +        if (call_count == 0) { +                AFR_STACK_DESTROY (impunge_frame); +                afr_sh_entry_impunge_entry_done (frame, this, active_src); +        } + +        return 0;  }  int  afr_sh_entry_impunge_recreate (call_frame_t *impunge_frame, xlator_t *this, -			       int child_index) +                               int child_index)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *impunge_local = NULL; -	afr_self_heal_t *impunge_sh = NULL; -	int              active_src = 0; +        afr_private_t   *priv = NULL; +        afr_local_t     *impunge_local = NULL; +        afr_self_heal_t *impunge_sh = NULL; +        int              active_src = 0; -	priv = this->private; -	impunge_local = impunge_frame->local; -	impunge_sh = &impunge_local->self_heal; +        priv = this->private; +        impunge_local = impunge_frame->local; +        impunge_sh = &impunge_local->self_heal; -	active_src = impunge_sh->active_source; +        active_src = impunge_sh->active_source; -	STACK_WIND_COOKIE (impunge_frame, -			   afr_sh_entry_impunge_recreate_lookup_cbk, -			   (void *) (long) child_index, -			   priv->children[active_src], -			   priv->children[active_src]->fops->lookup, -			   &impunge_local->loc, 0); +        STACK_WIND_COOKIE (impunge_frame, +                           afr_sh_entry_impunge_recreate_lookup_cbk, +                           (void *) (long) child_index, +                           priv->children[active_src], +                           priv->children[active_src]->fops->lookup, +                           &impunge_local->loc, 0); -	return 0; +        return 0;  }  int  afr_sh_entry_impunge_entry_cbk (call_frame_t *impunge_frame, void *cookie, -				xlator_t *this, -				int32_t op_ret,	int32_t op_errno, +                                xlator_t *this, +                                int32_t op_ret, int32_t op_errno,                                  inode_t *inode, struct iatt *buf, dict_t *x,                                  struct iatt *postparent)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *impunge_local = NULL; -	afr_self_heal_t *impunge_sh = NULL; -	int              call_count = 0; -	int              child_index = 0; -	call_frame_t    *frame = NULL; -	int              active_src = 0; - -	priv = this->private; -	impunge_local = impunge_frame->local; -	impunge_sh = &impunge_local->self_heal; -	frame = impunge_sh->sh_frame; -	child_index = (long) cookie; -	active_src = impunge_sh->active_source; - -	if ((op_ret == -1 && op_errno == ENOENT) +        afr_private_t   *priv = NULL; +        afr_local_t     *impunge_local = NULL; +        afr_self_heal_t *impunge_sh = NULL; +        int              call_count = 0; +        int              child_index = 0; +        call_frame_t    *frame = NULL; +        int              active_src = 0; + +        priv = this->private; +        impunge_local = impunge_frame->local; +        impunge_sh = &impunge_local->self_heal; +        frame = impunge_sh->sh_frame; +        child_index = (long) cookie; +        active_src = impunge_sh->active_source; + +        if ((op_ret == -1 && op_errno == ENOENT)              || (IA_ISLNK (impunge_sh->impunging_entry_mode))) {                  /* @@ -1660,475 +1660,475 @@ afr_sh_entry_impunge_entry_cbk (call_frame_t *impunge_frame, void *cookie,                   * always go down the recreate path for them.                   */ -		/* decrease call_count in recreate-callback */ +                /* decrease call_count in recreate-callback */ -		gf_log (this->name, GF_LOG_TRACE, -			"missing entry %s on %s", -			impunge_local->loc.path, -			priv->children[child_index]->name); +                gf_log (this->name, GF_LOG_TRACE, +                        "missing entry %s on %s", +                        impunge_local->loc.path, +                        priv->children[child_index]->name); -		afr_sh_entry_impunge_recreate (impunge_frame, this, -					       child_index); -		return 0; -	} +                afr_sh_entry_impunge_recreate (impunge_frame, this, +                                               child_index); +                return 0; +        } -	if (op_ret == 0) { -		gf_log (this->name, GF_LOG_TRACE, -			"%s exists under %s", -			impunge_local->loc.path, -			priv->children[child_index]->name); +        if (op_ret == 0) { +                gf_log (this->name, GF_LOG_TRACE, +                        "%s exists under %s", +                        impunge_local->loc.path, +                        priv->children[child_index]->name);                  impunge_sh->parentbuf = *postparent; -	} else { -		gf_log (this->name, GF_LOG_TRACE, -			"looking up %s under %s failed (%s)", -			impunge_local->loc.path, -			priv->children[child_index]->name, -			strerror (op_errno)); -	} - -	LOCK (&impunge_frame->lock); -	{ -		call_count = --impunge_local->call_count; -	} -	UNLOCK (&impunge_frame->lock); - -	if (call_count == 0) { -		AFR_STACK_DESTROY (impunge_frame); -		afr_sh_entry_impunge_entry_done (frame, this, active_src); -	} - -	return 0; +        } else { +                gf_log (this->name, GF_LOG_TRACE, +                        "looking up %s under %s failed (%s)", +                        impunge_local->loc.path, +                        priv->children[child_index]->name, +                        strerror (op_errno)); +        } + +        LOCK (&impunge_frame->lock); +        { +                call_count = --impunge_local->call_count; +        } +        UNLOCK (&impunge_frame->lock); + +        if (call_count == 0) { +                AFR_STACK_DESTROY (impunge_frame); +                afr_sh_entry_impunge_entry_done (frame, this, active_src); +        } + +        return 0;  }  int  afr_sh_entry_impunge_entry (call_frame_t *frame, xlator_t *this, -			    gf_dirent_t *entry) +                            gf_dirent_t *entry)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *local  = NULL; -	afr_self_heal_t *sh  = NULL; -	int              ret = -1; -	call_frame_t    *impunge_frame = NULL; -	afr_local_t     *impunge_local = NULL; -	afr_self_heal_t *impunge_sh = NULL; -	int              active_src = 0; -	int              i = 0; -	int              call_count = 0; -	int              op_errno = 0; - -	priv = this->private; -	local = frame->local; -	sh = &local->self_heal; - -	active_src = sh->active_source; - -	if ((strcmp (entry->d_name, ".") == 0) -	    || (strcmp (entry->d_name, "..") == 0) +        afr_private_t   *priv = NULL; +        afr_local_t     *local  = NULL; +        afr_self_heal_t *sh  = NULL; +        int              ret = -1; +        call_frame_t    *impunge_frame = NULL; +        afr_local_t     *impunge_local = NULL; +        afr_self_heal_t *impunge_sh = NULL; +        int              active_src = 0; +        int              i = 0; +        int              call_count = 0; +        int              op_errno = 0; + +        priv = this->private; +        local = frame->local; +        sh = &local->self_heal; + +        active_src = sh->active_source; + +        if ((strcmp (entry->d_name, ".") == 0) +            || (strcmp (entry->d_name, "..") == 0)              || ((strcmp (local->loc.path, "/") == 0)                  && (strcmp (entry->d_name, GF_REPLICATE_TRASH_DIR) == 0))) { -		gf_log (this->name, GF_LOG_TRACE, -			"skipping inspection of %s under %s", -			entry->d_name, local->loc.path); -		goto out; -	} +                gf_log (this->name, GF_LOG_TRACE, +                        "skipping inspection of %s under %s", +                        entry->d_name, local->loc.path); +                goto out; +        } -	gf_log (this->name, GF_LOG_TRACE, -		"inspecting existance of %s under %s", -		entry->d_name, local->loc.path); +        gf_log (this->name, GF_LOG_TRACE, +                "inspecting existance of %s under %s", +                entry->d_name, local->loc.path); -	impunge_frame = copy_frame (frame); -	if (!impunge_frame) { -		gf_log (this->name, GF_LOG_ERROR, -			"Out of memory."); -		goto out; -	} +        impunge_frame = copy_frame (frame); +        if (!impunge_frame) { +                gf_log (this->name, GF_LOG_ERROR, +                        "Out of memory."); +                goto out; +        } -	ALLOC_OR_GOTO (impunge_local, afr_local_t, out); +        ALLOC_OR_GOTO (impunge_local, afr_local_t, out); -	impunge_frame->local = impunge_local; -	impunge_sh = &impunge_local->self_heal; -	impunge_sh->sh_frame = frame; -	impunge_sh->active_source = active_src; +        impunge_frame->local = impunge_local; +        impunge_sh = &impunge_local->self_heal; +        impunge_sh->sh_frame = frame; +        impunge_sh->active_source = active_src;          impunge_sh->impunging_entry_mode =                  st_mode_from_ia (entry->d_stat.ia_prot, entry->d_stat.ia_type); -	ret = build_child_loc (this, &impunge_local->loc, &local->loc, entry->d_name); -	if (ret != 0) { -		goto out; -	} - -	for (i = 0; i < priv->child_count; i++) { -		if (i == active_src) -			continue; -		if (local->child_up[i] == 0) -			continue; -		if (sh->sources[i] == 1) -			continue; -		call_count++; -	} - -	impunge_local->call_count = call_count; - -	for (i = 0; i < priv->child_count; i++) { -		if (i == active_src) -			continue; -		if (local->child_up[i] == 0) -			continue; -		if (sh->sources[i] == 1) -			continue; - -		gf_log (this->name, GF_LOG_TRACE, -			"looking up %s on %s", impunge_local->loc.path, -			priv->children[i]->name); - -		STACK_WIND_COOKIE (impunge_frame, -				   afr_sh_entry_impunge_entry_cbk, -				   (void *) (long) i, -				   priv->children[i], -				   priv->children[i]->fops->lookup, -				   &impunge_local->loc, 0); - -		if (!--call_count) -			break; -	} - -	ret = 0; +        ret = build_child_loc (this, &impunge_local->loc, &local->loc, entry->d_name); +        if (ret != 0) { +                goto out; +        } + +        for (i = 0; i < priv->child_count; i++) { +                if (i == active_src) +                        continue; +                if (local->child_up[i] == 0) +                        continue; +                if (sh->sources[i] == 1) +                        continue; +                call_count++; +        } + +        impunge_local->call_count = call_count; + +        for (i = 0; i < priv->child_count; i++) { +                if (i == active_src) +                        continue; +                if (local->child_up[i] == 0) +                        continue; +                if (sh->sources[i] == 1) +                        continue; + +                gf_log (this->name, GF_LOG_TRACE, +                        "looking up %s on %s", impunge_local->loc.path, +                        priv->children[i]->name); + +                STACK_WIND_COOKIE (impunge_frame, +                                   afr_sh_entry_impunge_entry_cbk, +                                   (void *) (long) i, +                                   priv->children[i], +                                   priv->children[i]->fops->lookup, +                                   &impunge_local->loc, 0); + +                if (!--call_count) +                        break; +        } + +        ret = 0;  out: -	if (ret == -1) -		afr_sh_entry_impunge_entry_done (frame, this, active_src); +        if (ret == -1) +                afr_sh_entry_impunge_entry_done (frame, this, active_src); -	return 0; +        return 0;  }  int  afr_sh_entry_impunge_readdir_cbk (call_frame_t *frame, void *cookie, -				  xlator_t *this, -				  int32_t op_ret, int32_t op_errno, -				  gf_dirent_t *entries) +                                  xlator_t *this, +                                  int32_t op_ret, int32_t op_errno, +                                  gf_dirent_t *entries)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *local  = NULL; -	afr_self_heal_t *sh  = NULL; -	gf_dirent_t     *entry = NULL; -	off_t            last_offset = 0; -	int              active_src = 0; -	int              entry_count = 0; - -	priv = this->private; -	local = frame->local; -	sh = &local->self_heal; - -	active_src = sh->active_source; - -	if (op_ret <= 0) { -		if (op_ret < 0) { -			gf_log (this->name, GF_LOG_DEBUG, -				"readdir of %s on subvolume %s failed (%s)", -				local->loc.path, -				priv->children[active_src]->name, -				strerror (op_errno)); -		} else { -			gf_log (this->name, GF_LOG_TRACE, -				"readdir of %s on subvolume %s complete", -				local->loc.path, -				priv->children[active_src]->name); -		} - -		afr_sh_entry_impunge_all (frame, this); -		return 0; -	} - -	list_for_each_entry (entry, &entries->list, list) { -		last_offset = entry->d_off; +        afr_private_t   *priv = NULL; +        afr_local_t     *local  = NULL; +        afr_self_heal_t *sh  = NULL; +        gf_dirent_t     *entry = NULL; +        off_t            last_offset = 0; +        int              active_src = 0; +        int              entry_count = 0; + +        priv = this->private; +        local = frame->local; +        sh = &local->self_heal; + +        active_src = sh->active_source; + +        if (op_ret <= 0) { +                if (op_ret < 0) { +                        gf_log (this->name, GF_LOG_DEBUG, +                                "readdir of %s on subvolume %s failed (%s)", +                                local->loc.path, +                                priv->children[active_src]->name, +                                strerror (op_errno)); +                } else { +                        gf_log (this->name, GF_LOG_TRACE, +                                "readdir of %s on subvolume %s complete", +                                local->loc.path, +                                priv->children[active_src]->name); +                } + +                afr_sh_entry_impunge_all (frame, this); +                return 0; +        } + +        list_for_each_entry (entry, &entries->list, list) { +                last_offset = entry->d_off;                  entry_count++; -	} +        } -	gf_log (this->name, GF_LOG_TRACE, -		"readdir'ed %d entries from %s", -		entry_count, priv->children[active_src]->name); +        gf_log (this->name, GF_LOG_TRACE, +                "readdir'ed %d entries from %s", +                entry_count, priv->children[active_src]->name); -	sh->offset = last_offset; -	local->call_count = entry_count; +        sh->offset = last_offset; +        local->call_count = entry_count; -	list_for_each_entry (entry, &entries->list, list) { +        list_for_each_entry (entry, &entries->list, list) {                  afr_sh_entry_impunge_entry (frame, this, entry); -	} +        } -	return 0; +        return 0;  } -				   +  int  afr_sh_entry_impunge_subvol (call_frame_t *frame, xlator_t *this, -			     int active_src) +                             int active_src)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *local  = NULL; -	afr_self_heal_t *sh  = NULL; +        afr_private_t   *priv = NULL; +        afr_local_t     *local  = NULL; +        afr_self_heal_t *sh  = NULL; -	priv = this->private; -	local = frame->local; -	sh = &local->self_heal; +        priv = this->private; +        local = frame->local; +        sh = &local->self_heal; -	STACK_WIND (frame, afr_sh_entry_impunge_readdir_cbk, -		    priv->children[active_src], -		    priv->children[active_src]->fops->readdirp, -		    sh->healing_fd, sh->block_size, sh->offset); +        STACK_WIND (frame, afr_sh_entry_impunge_readdir_cbk, +                    priv->children[active_src], +                    priv->children[active_src]->fops->readdirp, +                    sh->healing_fd, sh->block_size, sh->offset); -	return 0; +        return 0;  }  int  afr_sh_entry_impunge_all (call_frame_t *frame, xlator_t *this)  { -	afr_private_t   *priv = NULL; -	afr_local_t     *local  = NULL; -	afr_self_heal_t *sh  = NULL; -	int              active_src = -1; +        afr_private_t   *priv = NULL; +        afr_local_t     *local  = NULL; +        afr_self_heal_t *sh  = NULL; +        int              active_src = -1; -	priv = this->private; -	local = frame->local; -	sh = &local->self_heal; +        priv = this->private; +        local = frame->local; +        sh = &local->self_heal; -	sh->offset = 0; +        sh->offset = 0; -	active_src = next_active_source (frame, this, sh->active_source); -	sh->active_source = active_src; +        active_src = next_active_source (frame, this, sh->active_source); +        sh->active_source = active_src; -	if (sh->op_failed) { -		afr_sh_entry_finish (frame, this); -		return 0; -	} +        if (sh->op_failed) { +                afr_sh_entry_finish (frame, this); +                return 0; +        } -	if (active_src == -1) { -		/* completed creating missing files on all subvolumes */ -		afr_sh_entry_erase_pending (frame, this); -		return 0; -	} +        if (active_src == -1) { +                /* completed creating missing files on all subvolumes */ +                afr_sh_entry_erase_pending (frame, this); +                return 0; +        } -	gf_log (this->name, GF_LOG_TRACE, -		"impunging entries of %s on %s to other sinks", -		local->loc.path, priv->children[active_src]->name); +        gf_log (this->name, GF_LOG_TRACE, +                "impunging entries of %s on %s to other sinks", +                local->loc.path, priv->children[active_src]->name); -	afr_sh_entry_impunge_subvol (frame, this, active_src); +        afr_sh_entry_impunge_subvol (frame, this, active_src); -	return 0; +        return 0;  }  int  afr_sh_entry_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -			  int32_t op_ret, int32_t op_errno, fd_t *fd) +                          int32_t op_ret, int32_t op_errno, fd_t *fd)  { -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; -	afr_private_t   *priv = NULL; -	int              call_count = 0; -	int              child_index = 0; - -	local = frame->local; -	sh = &local->self_heal; -	priv = this->private; - -	child_index = (long) cookie; - -	/* TODO: some of the open's might fail. -	   In that case, modify cleanup fn to send flush on those  -	   fd's which are already open */ - -	LOCK (&frame->lock); -	{ -		if (op_ret == -1) { -			gf_log (this->name, GF_LOG_DEBUG, -				"opendir of %s failed on child %s (%s)", -				local->loc.path, -				priv->children[child_index]->name, -				strerror (op_errno)); -			sh->op_failed = 1; -		} -	} -	UNLOCK (&frame->lock); - -	call_count = afr_frame_return (frame); - -	if (call_count == 0) { -		if (sh->op_failed) { -			afr_sh_entry_finish (frame, this); -			return 0; -		} -		gf_log (this->name, GF_LOG_TRACE, -			"fd for %s opened, commencing sync", -			local->loc.path); - -		sh->active_source = -1; -		afr_sh_entry_expunge_all (frame, this); -	} - -	return 0; +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; +        afr_private_t   *priv = NULL; +        int              call_count = 0; +        int              child_index = 0; + +        local = frame->local; +        sh = &local->self_heal; +        priv = this->private; + +        child_index = (long) cookie; + +        /* TODO: some of the open's might fail. +           In that case, modify cleanup fn to send flush on those +           fd's which are already open */ + +        LOCK (&frame->lock); +        { +                if (op_ret == -1) { +                        gf_log (this->name, GF_LOG_DEBUG, +                                "opendir of %s failed on child %s (%s)", +                                local->loc.path, +                                priv->children[child_index]->name, +                                strerror (op_errno)); +                        sh->op_failed = 1; +                } +        } +        UNLOCK (&frame->lock); + +        call_count = afr_frame_return (frame); + +        if (call_count == 0) { +                if (sh->op_failed) { +                        afr_sh_entry_finish (frame, this); +                        return 0; +                } +                gf_log (this->name, GF_LOG_TRACE, +                        "fd for %s opened, commencing sync", +                        local->loc.path); + +                sh->active_source = -1; +                afr_sh_entry_expunge_all (frame, this); +        } + +        return 0;  }  int  afr_sh_entry_open (call_frame_t *frame, xlator_t *this)  { -	int i = 0;				 -	int call_count = 0;		      +        int i = 0; +        int call_count = 0; -	int source = -1; -	int *sources = NULL; +        int source = -1; +        int *sources = NULL; -	fd_t *fd = NULL; +        fd_t *fd = NULL; -	afr_local_t *   local = NULL; -	afr_private_t * priv  = NULL; -	afr_self_heal_t *sh = NULL; - -	local = frame->local; -	sh = &local->self_heal; -	priv = this->private; +        afr_local_t *   local = NULL; +        afr_private_t * priv  = NULL; +        afr_self_heal_t *sh = NULL; -	source  = local->self_heal.source; -	sources = local->self_heal.sources; +        local = frame->local; +        sh = &local->self_heal; +        priv = this->private; -	sh->block_size = 65536; //131072 -	sh->offset = 0; +        source  = local->self_heal.source; +        sources = local->self_heal.sources; -	call_count = sh->active_sinks; -	if (source != -1) -		call_count++; +        sh->block_size = 65536; //131072 +        sh->offset = 0; -	local->call_count = call_count; +        call_count = sh->active_sinks; +        if (source != -1) +                call_count++; -	fd = fd_create (local->loc.inode, frame->root->pid); -	sh->healing_fd = fd; +        local->call_count = call_count; -	if (source != -1) { -		gf_log (this->name, GF_LOG_TRACE, -			"opening directory %s on subvolume %s (source)", -			local->loc.path, priv->children[source]->name); +        fd = fd_create (local->loc.inode, frame->root->pid); +        sh->healing_fd = fd; -		/* open source */ -		STACK_WIND_COOKIE (frame, afr_sh_entry_opendir_cbk, -				   (void *) (long) source, -				   priv->children[source], -				   priv->children[source]->fops->opendir, -				   &local->loc, fd); -		call_count--; -	} +        if (source != -1) { +                gf_log (this->name, GF_LOG_TRACE, +                        "opening directory %s on subvolume %s (source)", +                        local->loc.path, priv->children[source]->name); + +                /* open source */ +                STACK_WIND_COOKIE (frame, afr_sh_entry_opendir_cbk, +                                   (void *) (long) source, +                                   priv->children[source], +                                   priv->children[source]->fops->opendir, +                                   &local->loc, fd); +                call_count--; +        } -	/* open sinks */ -	for (i = 0; i < priv->child_count; i++) { -		if (sources[i] || !local->child_up[i]) -			continue; +        /* open sinks */ +        for (i = 0; i < priv->child_count; i++) { +                if (sources[i] || !local->child_up[i]) +                        continue; -		gf_log (this->name, GF_LOG_TRACE, -			"opening directory %s on subvolume %s (sink)", -			local->loc.path, priv->children[i]->name); +                gf_log (this->name, GF_LOG_TRACE, +                        "opening directory %s on subvolume %s (sink)", +                        local->loc.path, priv->children[i]->name); -		STACK_WIND_COOKIE (frame, afr_sh_entry_opendir_cbk, -				   (void *) (long) i, -				   priv->children[i],  -				   priv->children[i]->fops->opendir, -				   &local->loc, fd); +                STACK_WIND_COOKIE (frame, afr_sh_entry_opendir_cbk, +                                   (void *) (long) i, +                                   priv->children[i], +                                   priv->children[i]->fops->opendir, +                                   &local->loc, fd); -		if (!--call_count) -			break; -	} +                if (!--call_count) +                        break; +        } -	return 0; +        return 0;  }  int  afr_sh_entry_sync_prepare (call_frame_t *frame, xlator_t *this)  { -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; -	afr_private_t   *priv = NULL; -	int              active_sinks = 0; -	int              source = 0; -	int              i = 0; - -	local = frame->local; -	sh = &local->self_heal; -	priv = this->private; - -	source = sh->source; - -	for (i = 0; i < priv->child_count; i++) { -		if (sh->sources[i] == 0 && local->child_up[i] == 1) { -			active_sinks++; -			sh->success[i] = 1; -		} -	} -	if (source != -1) -		sh->success[source] = 1; - -	if (active_sinks == 0) { -		gf_log (this->name, GF_LOG_TRACE, -			"no active sinks for self-heal on dir %s", -			local->loc.path); -		afr_sh_entry_finish (frame, this); -		return 0; -	} -	if (source == -1 && active_sinks < 2) { -		gf_log (this->name, GF_LOG_TRACE, -			"cannot sync with 0 sources and 1 sink on dir %s", -			local->loc.path); -		afr_sh_entry_finish (frame, this); -		return 0; -	} -	sh->active_sinks = active_sinks; - -	if (source != -1) -		gf_log (this->name, GF_LOG_DEBUG, -			"self-healing directory %s from subvolume %s to " +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; +        afr_private_t   *priv = NULL; +        int              active_sinks = 0; +        int              source = 0; +        int              i = 0; + +        local = frame->local; +        sh = &local->self_heal; +        priv = this->private; + +        source = sh->source; + +        for (i = 0; i < priv->child_count; i++) { +                if (sh->sources[i] == 0 && local->child_up[i] == 1) { +                        active_sinks++; +                        sh->success[i] = 1; +                } +        } +        if (source != -1) +                sh->success[source] = 1; + +        if (active_sinks == 0) { +                gf_log (this->name, GF_LOG_TRACE, +                        "no active sinks for self-heal on dir %s", +                        local->loc.path); +                afr_sh_entry_finish (frame, this); +                return 0; +        } +        if (source == -1 && active_sinks < 2) { +                gf_log (this->name, GF_LOG_TRACE, +                        "cannot sync with 0 sources and 1 sink on dir %s", +                        local->loc.path); +                afr_sh_entry_finish (frame, this); +                return 0; +        } +        sh->active_sinks = active_sinks; + +        if (source != -1) +                gf_log (this->name, GF_LOG_DEBUG, +                        "self-healing directory %s from subvolume %s to "                          "%d other", -			local->loc.path, priv->children[source]->name, -			active_sinks); -	else -		gf_log (this->name, GF_LOG_DEBUG, -			"no active sources for %s found. " -			"merging all entries as a conservative decision", -			local->loc.path); +                        local->loc.path, priv->children[source]->name, +                        active_sinks); +        else +                gf_log (this->name, GF_LOG_DEBUG, +                        "no active sources for %s found. " +                        "merging all entries as a conservative decision", +                        local->loc.path); -	afr_sh_entry_open (frame, this); +        afr_sh_entry_open (frame, this); -	return 0; +        return 0;  }  int  afr_sh_entry_fix (call_frame_t *frame, xlator_t *this)  { -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; -	afr_private_t   *priv = NULL; -	int              source = 0; +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; +        afr_private_t   *priv = NULL; +        int              source = 0;          int nsources = 0; -	local = frame->local; -	sh = &local->self_heal; -	priv = this->private; +        local = frame->local; +        sh = &local->self_heal; +        priv = this->private;          if (sh->forced_merge) {                  sh->source = -1;                  goto heal;          } -	afr_sh_build_pending_matrix (priv, sh->pending_matrix, sh->xattr,  -				     priv->child_count, AFR_ENTRY_TRANSACTION); +        afr_sh_build_pending_matrix (priv, sh->pending_matrix, sh->xattr, +                                     priv->child_count, AFR_ENTRY_TRANSACTION); -	afr_sh_print_pending_matrix (sh->pending_matrix, this); +        afr_sh_print_pending_matrix (sh->pending_matrix, this); -	nsources = afr_sh_mark_sources (sh, priv->child_count, +        nsources = afr_sh_mark_sources (sh, priv->child_count,                                          AFR_SELF_HEAL_ENTRY);          if (nsources == 0) { @@ -2140,52 +2140,52 @@ afr_sh_entry_fix (call_frame_t *frame, xlator_t *this)                  return 0;          } -	afr_sh_supress_errenous_children (sh->sources, sh->child_errno, -					  priv->child_count); +        afr_sh_supress_errenous_children (sh->sources, sh->child_errno, +                                          priv->child_count); -	source = afr_sh_select_source (sh->sources, priv->child_count); +        source = afr_sh_select_source (sh->sources, priv->child_count);          sh->source = source;  heal: -	afr_sh_entry_sync_prepare (frame, this); +        afr_sh_entry_sync_prepare (frame, this); -	return 0; +        return 0;  }  int  afr_sh_entry_lookup_cbk (call_frame_t *frame, void *cookie, -			 xlator_t *this, int32_t op_ret, int32_t op_errno, +                         xlator_t *this, int32_t op_ret, int32_t op_errno,                           inode_t *inode, struct iatt *buf, dict_t *xattr,                           struct iatt *postparent)  { -	afr_local_t     *local = NULL; -	afr_self_heal_t *sh = NULL; +        afr_local_t     *local = NULL; +        afr_self_heal_t *sh = NULL; -	int call_count  = -1; -	int child_index = (long) cookie; +        int call_count  = -1; +        int child_index = (long) cookie; -	local = frame->local; -	sh = &local->self_heal; +        local = frame->local; +        sh = &local->self_heal; -	LOCK (&frame->lock); -	{ -		if (op_ret != -1) { -			sh->xattr[child_index] = dict_ref (xattr); -			sh->buf[child_index] = *buf; -		} -	} -	UNLOCK (&frame->lock); +        LOCK (&frame->lock); +        { +                if (op_ret != -1) { +                        sh->xattr[child_index] = dict_ref (xattr); +                        sh->buf[child_index] = *buf; +                } +        } +        UNLOCK (&frame->lock); -	call_count = afr_frame_return (frame); +        call_count = afr_frame_return (frame); -	if (call_count == 0) { -		afr_sh_entry_fix (frame, this); -	} +        if (call_count == 0) { +                afr_sh_entry_fix (frame, this); +        } -	return 0; +        return 0;  } @@ -2193,23 +2193,23 @@ afr_sh_entry_lookup_cbk (call_frame_t *frame, void *cookie,  int  afr_sh_entry_lookup (call_frame_t *frame, xlator_t *this)  { -	afr_local_t    *  local = NULL; -	afr_private_t  *  priv  = NULL; -	dict_t         *xattr_req = NULL; -	int ret = 0; -	int call_count = 0; -	int i = 0; +        afr_local_t    *  local = NULL; +        afr_private_t  *  priv  = NULL; +        dict_t         *xattr_req = NULL; +        int ret = 0; +        int call_count = 0; +        int i = 0; -	priv  = this->private; -	local = frame->local; +        priv  = this->private; +        local = frame->local; -	call_count = afr_up_children_count (priv->child_count, +        call_count = afr_up_children_count (priv->child_count,                                              local->child_up); -	local->call_count = call_count; +        local->call_count = call_count; -	xattr_req = dict_new(); -	if (xattr_req) { +        xattr_req = dict_new(); +        if (xattr_req) {                  for (i = 0; i < priv->child_count; i++) {                          ret = dict_set_uint64 (xattr_req,                                                 priv->pending_key[i], @@ -2220,23 +2220,23 @@ afr_sh_entry_lookup (call_frame_t *frame, xlator_t *this)                  }          } -	for (i = 0; i < priv->child_count; i++) { -		if (local->child_up[i]) { -			STACK_WIND_COOKIE (frame, -					   afr_sh_entry_lookup_cbk, -					   (void *) (long) i, -					   priv->children[i], -					   priv->children[i]->fops->lookup, -					   &local->loc, xattr_req); -			if (!--call_count) -				break; -		} -	} +        for (i = 0; i < priv->child_count; i++) { +                if (local->child_up[i]) { +                        STACK_WIND_COOKIE (frame, +                                           afr_sh_entry_lookup_cbk, +                                           (void *) (long) i, +                                           priv->children[i], +                                           priv->children[i]->fops->lookup, +                                           &local->loc, xattr_req); +                        if (!--call_count) +                                break; +                } +        } -	if (xattr_req) -		dict_unref (xattr_req); +        if (xattr_req) +                dict_unref (xattr_req); -	return 0; +        return 0;  }  int @@ -2283,29 +2283,28 @@ afr_sh_entry_lock (call_frame_t *frame, xlator_t *this)          afr_nonblocking_entrylk (frame, this); -	return 0; +        return 0;  }  int  afr_self_heal_entry (call_frame_t *frame, xlator_t *this)  { -	afr_local_t   *local = NULL; -	afr_private_t   *priv = NULL; +        afr_local_t   *local = NULL; +        afr_private_t   *priv = NULL; -	priv = this->private; -	local = frame->local; +        priv = this->private; +        local = frame->local; -	if (local->self_heal.need_entry_self_heal && priv->entry_self_heal) { -		afr_sh_entry_lock (frame, this); -	} else { -		gf_log (this->name, GF_LOG_TRACE, -			"proceeding to completion on %s", -			local->loc.path); -		afr_sh_entry_done (frame, this); -	} +        if (local->self_heal.need_entry_self_heal && priv->entry_self_heal) { +                afr_sh_entry_lock (frame, this); +        } else { +                gf_log (this->name, GF_LOG_TRACE, +                        "proceeding to completion on %s", +                        local->loc.path); +                afr_sh_entry_done (frame, this); +        } -	return 0; +        return 0;  } - diff --git a/xlators/cluster/afr/src/afr-transaction.c b/xlators/cluster/afr/src/afr-transaction.c index 4afb7ce6f2a..d1265e7ebed 100644 --- a/xlators/cluster/afr/src/afr-transaction.c +++ b/xlators/cluster/afr/src/afr-transaction.c @@ -78,12 +78,12 @@ static void  __mark_all_pending (int32_t *pending[], int child_count,                      afr_transaction_type type)  { -	int i; +        int i;          int j;          for (i = 0; i < child_count; i++) {                  j = afr_index_for_transaction_type (type); -		pending[i][j] = hton32 (1); +                pending[i][j] = hton32 (1);          }  } @@ -96,7 +96,7 @@ __mark_child_dead (int32_t *pending[], int child_count, int child,          j = afr_index_for_transaction_type (type); -	pending[child][j] = 0; +        pending[child][j] = 0;  } @@ -158,14 +158,14 @@ static void  __mark_down_children (int32_t *pending[], int child_count,                        unsigned char *child_up, afr_transaction_type type)  { -	int i; -	int j; +        int i; +        int j; -	for (i = 0; i < child_count; i++) { +        for (i = 0; i < child_count; i++) {                  j = afr_index_for_transaction_type (type); -		if (!child_up[i]) -			pending[i][j] = 0; +                if (!child_up[i]) +                        pending[i][j] = 0;          }  } @@ -174,12 +174,12 @@ static void  __mark_all_success (int32_t *pending[], int child_count,                      afr_transaction_type type)  { -	int i; +        int i;          int j; -	for (i = 0; i < child_count; i++) { +        for (i = 0; i < child_count; i++) {                  j = afr_index_for_transaction_type (type); -		pending[i][j] = hton32 (-1); +                pending[i][j] = hton32 (-1);          }  } @@ -187,79 +187,79 @@ __mark_all_success (int32_t *pending[], int child_count,  static int  __changelog_enabled (afr_private_t *priv, afr_transaction_type type)  { -	int ret = 0; +        int ret = 0; -	switch (type) { -	case AFR_DATA_TRANSACTION: -		if (priv->data_change_log) -			ret = 1; +        switch (type) { +        case AFR_DATA_TRANSACTION: +                if (priv->data_change_log) +                        ret = 1; -		break; +                break; -	case AFR_METADATA_TRANSACTION: -		if (priv->metadata_change_log) -			ret = 1; +        case AFR_METADATA_TRANSACTION: +                if (priv->metadata_change_log) +                        ret = 1; -		break; +                break; -	case AFR_ENTRY_TRANSACTION: -	case AFR_ENTRY_RENAME_TRANSACTION: -		if (priv->entry_change_log) -			ret = 1; +        case AFR_ENTRY_TRANSACTION: +        case AFR_ENTRY_RENAME_TRANSACTION: +                if (priv->entry_change_log) +                        ret = 1; -		break; -	} +                break; +        } -	return ret; +        return ret;  }  static int  __changelog_needed_pre_op (call_frame_t *frame, xlator_t *this)  { -	afr_private_t * priv  = NULL; -	afr_local_t   * local = NULL; +        afr_private_t * priv  = NULL; +        afr_local_t   * local = NULL; -	int op_ret   = 0; +        int op_ret   = 0; -	priv  = this->private; -	local = frame->local; +        priv  = this->private; +        local = frame->local; -	if (__changelog_enabled (priv, local->transaction.type)) { -		switch (local->op) { +        if (__changelog_enabled (priv, local->transaction.type)) { +                switch (local->op) { -		case GF_FOP_WRITE: -		case GF_FOP_FTRUNCATE: +                case GF_FOP_WRITE: +                case GF_FOP_FTRUNCATE:                          op_ret = 1; -			break; +                        break; -		case GF_FOP_FLUSH: -			op_ret = 0; -			break; +                case GF_FOP_FLUSH: +                        op_ret = 0; +                        break; -		default: -			op_ret = 1; -		} -	} +                default: +                        op_ret = 1; +                } +        } -	return op_ret; +        return op_ret;  }  static int  __changelog_needed_post_op (call_frame_t *frame, xlator_t *this)  { -	afr_private_t * priv  = NULL; -	afr_local_t   * local = NULL; +        afr_private_t * priv  = NULL; +        afr_local_t   * local = NULL; -	int op_ret = 0; -	afr_transaction_type type = -1; +        int op_ret = 0; +        afr_transaction_type type = -1; -	priv  = this->private; -	local = frame->local; -	type  = local->transaction.type; +        priv  = this->private; +        local = frame->local; +        type  = local->transaction.type; -	if (__changelog_enabled (priv, type)) { +        if (__changelog_enabled (priv, type)) {                  switch (local->op) {                  case GF_FOP_WRITE: @@ -276,7 +276,7 @@ __changelog_needed_post_op (call_frame_t *frame, xlator_t *this)                  }          } -	return op_ret; +        return op_ret;  } @@ -309,7 +309,7 @@ afr_set_piggyback_dict (afr_private_t *priv, dict_t *xattr, int32_t **pending,          int *arr = NULL;          int index = 0;          size_t pending_xattr_size = 3 * sizeof (int32_t); -                                 /* 3 = data+metadata+entry */ +        /* 3 = data+metadata+entry */          index = afr_index_for_transaction_type (type); @@ -340,41 +340,41 @@ out:  int  afr_lock_server_count (afr_private_t *priv, afr_transaction_type type)  { -	int ret = 0; +        int ret = 0; -	switch (type) { -	case AFR_DATA_TRANSACTION: -		ret = priv->child_count; -		break; +        switch (type) { +        case AFR_DATA_TRANSACTION: +                ret = priv->child_count; +                break; -	case AFR_METADATA_TRANSACTION: -		ret = priv->child_count; -		break; +        case AFR_METADATA_TRANSACTION: +                ret = priv->child_count; +                break; -	case AFR_ENTRY_TRANSACTION: -	case AFR_ENTRY_RENAME_TRANSACTION: -		ret = priv->child_count; -		break; -	} +        case AFR_ENTRY_TRANSACTION: +        case AFR_ENTRY_RENAME_TRANSACTION: +                ret = priv->child_count; +                break; +        } -	return ret; +        return ret;  }  /* {{{ pending */  int32_t  afr_changelog_post_op_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -			   int32_t op_ret, int32_t op_errno, dict_t *xattr) +                           int32_t op_ret, int32_t op_errno, dict_t *xattr)  {          afr_internal_lock_t *int_lock = NULL; -	afr_private_t       *priv     = NULL; -	afr_local_t         *local    = NULL; +        afr_private_t       *priv     = NULL; +        afr_local_t         *local    = NULL;          int                  child_index = 0; -	int call_count = -1; +        int call_count = -1; -	priv     = this->private; -	local    = frame->local; +        priv     = this->private; +        local    = frame->local;          int_lock = &local->internal_lock;          child_index = (long) cookie; @@ -386,22 +386,22 @@ afr_changelog_post_op_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  __mark_pre_op_undone_on_fd (frame, this, child_index);          } -	LOCK (&frame->lock); -	{ -		call_count = --local->call_count; -	} -	UNLOCK (&frame->lock); +        LOCK (&frame->lock); +        { +                call_count = --local->call_count; +        } +        UNLOCK (&frame->lock); -	if (call_count == 0) { +        if (call_count == 0) {                  if (afr_lock_server_count (priv, local->transaction.type) == 0) {                          local->transaction.done (frame, this);                  } else {                          int_lock->lock_cbk = local->transaction.done;                          afr_unlock (frame, this);                  } -	} +        } -	return 0; +        return 0;  } @@ -449,26 +449,26 @@ afr_update_read_child (call_frame_t *frame, xlator_t *this, inode_t *inode,  } -int  +int  afr_changelog_post_op (call_frame_t *frame, xlator_t *this)  { -	afr_private_t * priv = this->private; +        afr_private_t * priv = this->private;          afr_internal_lock_t *int_lock = NULL; -	int ret        = 0; -	int i          = 0; -	int call_count = 0; +        int ret        = 0; +        int i          = 0; +        int call_count = 0; -	afr_local_t *  local = NULL; +        afr_local_t *  local = NULL;          afr_fd_ctx_t  *fdctx = NULL; -	dict_t        **xattr = NULL; +        dict_t        **xattr = NULL;          int            piggyback = 0;          int            index = 0;          int            nothing_failed = 1; -	local    = frame->local; +        local    = frame->local;          int_lock = &local->internal_lock; -	__mark_down_children (local->pending, priv->child_count, +        __mark_down_children (local->pending, priv->child_count,                                local->child_up, local->transaction.type);          if (local->fd) @@ -477,7 +477,7 @@ afr_changelog_post_op (call_frame_t *frame, xlator_t *this)          xattr = alloca (priv->child_count * sizeof (*xattr));          memset (xattr, 0, (priv->child_count * sizeof (*xattr))); -	for (i = 0; i < priv->child_count; i++) { +        for (i = 0; i < priv->child_count; i++) {                  xattr[i] = get_new_dict ();                  dict_ref (xattr[i]);          } @@ -488,21 +488,21 @@ afr_changelog_post_op (call_frame_t *frame, xlator_t *this)                  call_count *= 2;          } -	local->call_count = call_count; +        local->call_count = call_count;          if (local->fd)                  fdctx = afr_fd_ctx_get (local->fd, this); -	if (call_count == 0) { -		/* no child is up */ +        if (call_count == 0) { +                /* no child is up */                  for (i = 0; i < priv->child_count; i++) {                          dict_unref (xattr[i]);                  }                  int_lock->lock_cbk = local->transaction.done; -		afr_unlock (frame, this); -		return 0; -	} +                afr_unlock (frame, this); +                return 0; +        }          /* check if something has failed, to handle piggybacking */          nothing_failed = 1; @@ -522,8 +522,8 @@ afr_changelog_post_op (call_frame_t *frame, xlator_t *this)                          local->pending[i][index]++;          } -	for (i = 0; i < priv->child_count; i++) { -		if (!local->child_up[i]) +        for (i = 0; i < priv->child_count; i++) { +                if (!local->child_up[i])                          continue;                  ret = afr_set_pending_dict (priv, xattr[i], @@ -563,7 +563,7 @@ afr_changelog_post_op (call_frame_t *frame, xlator_t *this)                          if (nothing_failed && piggyback) {                                  afr_changelog_post_op_cbk (frame, (void *)(long)i, -                                                          this, 1, 0, xattr[i]); +                                                           this, 1, 0, xattr[i]);                          } else {                                  STACK_WIND_COOKIE (frame,                                                     afr_changelog_post_op_cbk, @@ -579,7 +579,7 @@ afr_changelog_post_op (call_frame_t *frame, xlator_t *this)                  {                          if (nothing_failed) {                                  afr_changelog_post_op_cbk (frame, (void *)(long)i, -                                                          this, 1, 0, xattr[i]); +                                                           this, 1, 0, xattr[i]);                                  break;                          } @@ -602,7 +602,7 @@ afr_changelog_post_op (call_frame_t *frame, xlator_t *this)                  {                          if (nothing_failed) {                                  afr_changelog_post_op_cbk (frame, (void *)(long)i, -                                                          this, 1, 0, xattr[i]); +                                                           this, 1, 0, xattr[i]);                          } else {                                  STACK_WIND_COOKIE (frame, afr_changelog_post_op_cbk,                                                     (void *) (long) i, @@ -635,7 +635,7 @@ afr_changelog_post_op (call_frame_t *frame, xlator_t *this)                  {                          if (nothing_failed) {                                  afr_changelog_post_op_cbk (frame, (void *)(long)i, -                                                          this, 1, 0, xattr[i]); +                                                           this, 1, 0, xattr[i]);                                  break;                          } @@ -657,13 +657,13 @@ afr_changelog_post_op (call_frame_t *frame, xlator_t *this)                  if (!--call_count)                          break; -	} +        }          for (i = 0; i < priv->child_count; i++) {                  dict_unref (xattr[i]);          } -	return 0; +        return 0;  } @@ -671,18 +671,18 @@ int32_t  afr_changelog_pre_op_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                            int32_t op_ret, int32_t op_errno, dict_t *xattr)  { -	afr_local_t *   local = NULL; -	afr_private_t * priv  = this->private; -	loc_t       *   loc   = NULL; +        afr_local_t *   local = NULL; +        afr_private_t * priv  = this->private; +        loc_t       *   loc   = NULL; -	int call_count  = -1; -	int child_index = (long) cookie; +        int call_count  = -1; +        int child_index = (long) cookie; -	local = frame->local; -	loc   = &local->loc; +        local = frame->local; +        loc   = &local->loc; -	LOCK (&frame->lock); -	{ +        LOCK (&frame->lock); +        {                  if (op_ret == 1) {                          /* special op_ret for piggyback */                  } @@ -691,97 +691,97 @@ afr_changelog_pre_op_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                          __mark_pre_op_done_on_fd (frame, this, child_index);                  } -		if (op_ret == -1) { -			local->child_up[child_index] = 0; - -			if (op_errno == ENOTSUP) { -				gf_log (this->name, GF_LOG_ERROR, -					"xattrop not supported by %s", -					priv->children[child_index]->name); -				local->op_ret = -1; - -			} else if (!child_went_down (op_ret, op_errno)) { -				gf_log (this->name, GF_LOG_ERROR, -					"xattrop failed on child %s: %s", -					priv->children[child_index]->name, -					strerror (op_errno)); -			} -			local->op_errno = op_errno; -		} - -		call_count = --local->call_count; -	} -	UNLOCK (&frame->lock); - -	if (call_count == 0) { -		if ((local->op_ret == -1) && -		    (local->op_errno == ENOTSUP)) { -			local->transaction.resume (frame, this); -		} else { +                if (op_ret == -1) { +                        local->child_up[child_index] = 0; + +                        if (op_errno == ENOTSUP) { +                                gf_log (this->name, GF_LOG_ERROR, +                                        "xattrop not supported by %s", +                                        priv->children[child_index]->name); +                                local->op_ret = -1; + +                        } else if (!child_went_down (op_ret, op_errno)) { +                                gf_log (this->name, GF_LOG_ERROR, +                                        "xattrop failed on child %s: %s", +                                        priv->children[child_index]->name, +                                        strerror (op_errno)); +                        } +                        local->op_errno = op_errno; +                } + +                call_count = --local->call_count; +        } +        UNLOCK (&frame->lock); + +        if (call_count == 0) { +                if ((local->op_ret == -1) && +                    (local->op_errno == ENOTSUP)) { +                        local->transaction.resume (frame, this); +                } else {                          __mark_all_success (local->pending, priv->child_count,                                              local->transaction.type);                          afr_pid_restore (frame); -			local->transaction.fop (frame, this); -		} -	} +                        local->transaction.fop (frame, this); +                } +        } -	return 0; +        return 0;  }  int  afr_changelog_pre_op (call_frame_t *frame, xlator_t *this)  { -	afr_private_t * priv = this->private; -	int i = 0; -	int ret = 0; -	int call_count = 0; -	dict_t **xattr = NULL; +        afr_private_t * priv = this->private; +        int i = 0; +        int ret = 0; +        int call_count = 0; +        dict_t **xattr = NULL;          afr_fd_ctx_t *fdctx = NULL; -	afr_local_t *local = NULL; +        afr_local_t *local = NULL;          int          piggyback = 0; -	local = frame->local; +        local = frame->local;          xattr = alloca (priv->child_count * sizeof (*xattr));          memset (xattr, 0, (priv->child_count * sizeof (*xattr))); -	for (i = 0; i < priv->child_count; i++) { +        for (i = 0; i < priv->child_count; i++) {                  xattr[i] = get_new_dict ();                  dict_ref (xattr[i]);          } -	call_count = afr_up_children_count (priv->child_count, -					    local->child_up); +        call_count = afr_up_children_count (priv->child_count, +                                            local->child_up); -	if (local->transaction.type == AFR_ENTRY_RENAME_TRANSACTION) { -		call_count *= 2; -	} +        if (local->transaction.type == AFR_ENTRY_RENAME_TRANSACTION) { +                call_count *= 2; +        } -	if (call_count == 0) { -		/* no child is up */ +        if (call_count == 0) { +                /* no child is up */                  for (i = 0; i < priv->child_count; i++) {                          dict_unref (xattr[i]);                  }                  local->internal_lock.lock_cbk =                          local->transaction.done; -		afr_unlock (frame, this); -		return 0; -	} +                afr_unlock (frame, this); +                return 0; +        } -	local->call_count = call_count; +        local->call_count = call_count; -	__mark_all_pending (local->pending, priv->child_count, +        __mark_all_pending (local->pending, priv->child_count,                              local->transaction.type);          if (local->fd)                  fdctx = afr_fd_ctx_get (local->fd, this); -	for (i = 0; i < priv->child_count; i++) { +        for (i = 0; i < priv->child_count; i++) {                  if (!local->child_up[i])                          continue;                  ret = afr_set_pending_dict (priv, xattr[i], @@ -925,13 +925,13 @@ afr_changelog_pre_op (call_frame_t *frame, xlator_t *this)                  if (!--call_count)                          break; -	} +        }          for (i = 0; i < priv->child_count; i++) {                  dict_unref (xattr[i]);          } -	return 0; +        return 0;  } @@ -947,7 +947,7 @@ afr_post_blocking_inodelk_cbk (call_frame_t *frame, xlator_t *this)          if (int_lock->lock_op_ret < 0) {                  gf_log (this->name, GF_LOG_DEBUG,                          "Blocking inodelks failed."); -		local->transaction.done (frame, this); +                local->transaction.done (frame, this);          } else {                  gf_log (this->name, GF_LOG_DEBUG, @@ -997,7 +997,7 @@ afr_post_blocking_entrylk_cbk (call_frame_t *frame, xlator_t *this)          if (int_lock->lock_op_ret < 0) {                  gf_log (this->name, GF_LOG_DEBUG,                          "Blocking entrylks failed."); -		local->transaction.done (frame, this); +                local->transaction.done (frame, this);          } else {                  gf_log (this->name, GF_LOG_DEBUG, @@ -1047,7 +1047,7 @@ afr_post_blocking_rename_cbk (call_frame_t *frame, xlator_t *this)          if (int_lock->lock_op_ret < 0) {                  gf_log (this->name, GF_LOG_DEBUG,                          "Blocking entrylks failed."); -		local->transaction.done (frame, this); +                local->transaction.done (frame, this);          } else {                  gf_log (this->name, GF_LOG_DEBUG, @@ -1101,15 +1101,15 @@ afr_lock_rec (call_frame_t *frame, xlator_t *this)          int_lock->transaction_lk_type = AFR_TRANSACTION_LK; -	switch (local->transaction.type) { -	case AFR_DATA_TRANSACTION: -	case AFR_METADATA_TRANSACTION: +        switch (local->transaction.type) { +        case AFR_DATA_TRANSACTION: +        case AFR_METADATA_TRANSACTION:                  afr_set_transaction_flock (local);                  int_lock->lock_cbk = afr_post_nonblocking_inodelk_cbk;                  afr_nonblocking_inodelk (frame, this); -		break; +                break;          case AFR_ENTRY_RENAME_TRANSACTION: @@ -1117,7 +1117,7 @@ afr_lock_rec (call_frame_t *frame, xlator_t *this)                  afr_blocking_lock (frame, this);                  break; -	case AFR_ENTRY_TRANSACTION: +        case AFR_ENTRY_TRANSACTION:                  int_lock->lk_basename = local->transaction.basename;                  if (&local->transaction.parent_loc)                          int_lock->lk_loc = &local->transaction.parent_loc; @@ -1144,7 +1144,7 @@ afr_lock (call_frame_t *frame, xlator_t *this)          afr_set_lock_number (frame, this); -	return afr_lock_rec (frame, this); +        return afr_lock_rec (frame, this);  } @@ -1178,25 +1178,25 @@ int  afr_transaction_resume (call_frame_t *frame, xlator_t *this)  {          afr_internal_lock_t *int_lock = NULL; -	afr_local_t         *local    = NULL; -	afr_private_t       *priv     = NULL; +        afr_local_t         *local    = NULL; +        afr_private_t       *priv     = NULL; -	local    = frame->local; +        local    = frame->local;          int_lock = &local->internal_lock; -	priv     = this->private; - -	if (__changelog_needed_post_op (frame, this)) { -		afr_changelog_post_op (frame, this); -	} else { -		if (afr_lock_server_count (priv, local->transaction.type) == 0) { -			local->transaction.done (frame, this); -		} else { +        priv     = this->private; + +        if (__changelog_needed_post_op (frame, this)) { +                afr_changelog_post_op (frame, this); +        } else { +                if (afr_lock_server_count (priv, local->transaction.type) == 0) { +                        local->transaction.done (frame, this); +                } else {                          int_lock->lock_cbk = local->transaction.done; -			afr_unlock (frame, this); -		} -	} +                        afr_unlock (frame, this); +                } +        } -	return 0; +        return 0;  } @@ -1207,11 +1207,11 @@ afr_transaction_resume (call_frame_t *frame, xlator_t *this)  void  afr_transaction_fop_failed (call_frame_t *frame, xlator_t *this, int child_index)  { -	afr_local_t *   local = NULL; -	afr_private_t * priv  = NULL; +        afr_local_t *   local = NULL; +        afr_private_t * priv  = NULL; -	local = frame->local; -	priv  = this->private; +        local = frame->local; +        priv  = this->private;          __mark_child_dead (local->pending, priv->child_count,                             child_index, local->transaction.type); @@ -1221,22 +1221,22 @@ afr_transaction_fop_failed (call_frame_t *frame, xlator_t *this, int child_index  int  afr_transaction (call_frame_t *frame, xlator_t *this, afr_transaction_type type)  { -	afr_local_t *   local = NULL; -	afr_private_t * priv  = NULL; +        afr_local_t *   local = NULL; +        afr_private_t * priv  = NULL; -	local = frame->local; -	priv  = this->private; +        local = frame->local; +        priv  = this->private; -	afr_transaction_local_init (local, priv); +        afr_transaction_local_init (local, priv); -	local->transaction.resume = afr_transaction_resume; -	local->transaction.type   = type; +        local->transaction.resume = afr_transaction_resume; +        local->transaction.type   = type; -	if (afr_lock_server_count (priv, local->transaction.type) == 0) { +        if (afr_lock_server_count (priv, local->transaction.type) == 0) {                  afr_internal_lock_finish (frame, this); -	} else { -		afr_lock (frame, this); -	} +        } else { +                afr_lock (frame, this); +        } -	return 0; +        return 0;  } diff --git a/xlators/cluster/afr/src/afr.c b/xlators/cluster/afr/src/afr.c index dff55bc9584..98d857d6bc0 100644 --- a/xlators/cluster/afr/src/afr.c +++ b/xlators/cluster/afr/src/afr.c @@ -1,20 +1,20 @@  /* -   Copyright (c) 2007-2010 Gluster, Inc. <http://www.gluster.com> -   This file is part of GlusterFS. - -   GlusterFS is free software; you can redistribute it and/or modify -   it under the terms of the GNU Affero General Public License as published -   by the Free Software Foundation; either version 3 of the License, -   or (at your option) any later version. - -   GlusterFS is distributed in the hope that it will be useful, but -   WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -   Affero General Public License for more details. - -   You should have received a copy of the GNU Affero General Public License -   along with this program.  If not, see -   <http://www.gnu.org/licenses/>. +  Copyright (c) 2007-2010 Gluster, Inc. <http://www.gluster.com> +  This file is part of GlusterFS. + +  GlusterFS is free software; you can redistribute it and/or modify +  it under the terms of the GNU Affero General Public License as published +  by the Free Software Foundation; either version 3 of the License, +  or (at your option) any later version. + +  GlusterFS is distributed in the hope that it will be useful, but +  WITHOUT ANY WARRANTY; without even the implied warranty of +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +  Affero General Public License for more details. + +  You should have received a copy of the GNU Affero General Public License +  along with this program.  If not, see +  <http://www.gnu.org/licenses/>.  */  #include <libgen.h> @@ -32,7 +32,7 @@  int32_t  notify (xlator_t *this, int32_t event, -	void *data, ...) +        void *data, ...)  {          int ret = -1; @@ -53,7 +53,7 @@ mem_acct_init (xlator_t *this)          if (ret != 0) {                  gf_log(this->name, GF_LOG_ERROR, "Memory accounting init" -                                "failed"); +                       "failed");                  return ret;          } @@ -77,8 +77,8 @@ validate_options (xlator_t *this, char **op_errstr)                  goto out;          vol_opt = list_entry (this->volume_options.next, -                                      volume_opt_list_t, list); -         list_for_each_entry_safe (vol_opt, tmp, &this->volume_options, list) { +                              volume_opt_list_t, list); +        list_for_each_entry_safe (vol_opt, tmp, &this->volume_options, list) {                  ret = validate_xlator_volume_options_attacherr (this,                                                                  vol_opt->given_opt,                                                                  op_errstr); @@ -94,193 +94,193 @@ int  reconfigure (xlator_t *this, dict_t *options)  { -	gf_boolean_t metadata_self_heal;   /* on/off */ -	gf_boolean_t entry_self_heal; -	gf_boolean_t data_self_heal; -	gf_boolean_t data_change_log;       /* on/off */ -	gf_boolean_t metadata_change_log;   /* on/off */ -	gf_boolean_t entry_change_log;      /* on/off */ -	gf_boolean_t strict_readdir; - -	afr_private_t * priv        = NULL; -	xlator_list_t * trav        = NULL; - -	char * read_subvol     = NULL; -	char * self_heal       = NULL; -	char * change_log      = NULL; -	char * str_readdir     = NULL; +        gf_boolean_t metadata_self_heal;   /* on/off */ +        gf_boolean_t entry_self_heal; +        gf_boolean_t data_self_heal; +        gf_boolean_t data_change_log;       /* on/off */ +        gf_boolean_t metadata_change_log;   /* on/off */ +        gf_boolean_t entry_change_log;      /* on/off */ +        gf_boolean_t strict_readdir; + +        afr_private_t * priv        = NULL; +        xlator_list_t * trav        = NULL; + +        char * read_subvol     = NULL; +        char * self_heal       = NULL; +        char * change_log      = NULL; +        char * str_readdir     = NULL;          char * self_heal_algo  = NULL;          int32_t background_count  = 0;          int32_t window_size       = 0; -	int    read_ret      = -1; -	int    dict_ret      = -1; -	int    flag	     = 1; -	int    ret           = 0; -	int    temp_ret	     = -1; - -	priv = this->private; - -	dict_ret = dict_get_int32 (options, "background-self-heal-count", -				   &background_count); -	if (dict_ret == 0) { -		gf_log (this->name, GF_LOG_DEBUG, -			"Reconfiguring background self-heal count to %d", -			background_count); - -		priv->background_self_heal_count = background_count; -	} - -	dict_ret = dict_get_str (options, "metadata-self-heal", -				 &self_heal); -	if (dict_ret == 0) { -		temp_ret = gf_string2boolean (self_heal, &metadata_self_heal); -		if (temp_ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Reconfiguration Invalid 'option metadata" -				"-self-heal %s'. Defaulting to old value.", -				self_heal); -			ret = -1; -			goto out; -		} - -		priv->metadata_self_heal = metadata_self_heal; -		gf_log (this->name, GF_LOG_DEBUG, -			"Reconfiguring 'option metadata" -			"-self-heal %s'.", -			self_heal); -	} - -	dict_ret = dict_get_str (options, "data-self-heal", -				 &self_heal); -	if (dict_ret == 0) { -		temp_ret = gf_string2boolean (self_heal, &data_self_heal); -		if (temp_ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Reconfiguration Invalid 'option data" -				"-self-heal %s'. Defaulting to old value.", -				self_heal); -			ret = -1; -			goto out; -		} - -		priv->data_self_heal = data_self_heal; -		gf_log (this->name, GF_LOG_DEBUG, -			"Reconfiguring 'option data" -			"-self-heal %s'.", self_heal); -	} - -	dict_ret = dict_get_str (options, "entry-self-heal", -				 &self_heal); -	if (dict_ret == 0) { -		temp_ret = gf_string2boolean (self_heal, &entry_self_heal); -		if (temp_ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Reconfiguration Invalid 'option data" -				"-self-heal %s'. Defaulting to old value.", -				self_heal); -			ret = -1; -			goto out; -		} - -		priv->entry_self_heal = entry_self_heal; -		gf_log (this->name, GF_LOG_DEBUG, -			"Reconfiguring 'option entry" -			"-self-heal %s'.", self_heal); -	} - - -	dict_ret = dict_get_str (options, "strict-readdir", -				 &str_readdir); -	if (dict_ret == 0) { -		temp_ret = gf_string2boolean (str_readdir, &strict_readdir); -		if (temp_ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Invalid 'option strict-readdir %s'. " -				"Defaulting to old value.", -				str_readdir); -			ret = -1; -			goto out; -		} - -		priv->strict_readdir = strict_readdir; -		gf_log (this->name, GF_LOG_DEBUG, -			"Reconfiguring 'option strict" -			"-readdir %s'.", str_readdir); -	} - -	dict_ret = dict_get_int32 (options, "data-self-heal-window-size", -				   &window_size); -	if (dict_ret == 0) { -		gf_log (this->name, GF_LOG_DEBUG, -			"Reconfiguring, Setting data self-heal window size to %d", -			window_size); - -		priv->data_self_heal_window_size = window_size; -	} +        int    read_ret      = -1; +        int    dict_ret      = -1; +        int    flag          = 1; +        int    ret           = 0; +        int    temp_ret      = -1; + +        priv = this->private; + +        dict_ret = dict_get_int32 (options, "background-self-heal-count", +                                   &background_count); +        if (dict_ret == 0) { +                gf_log (this->name, GF_LOG_DEBUG, +                        "Reconfiguring background self-heal count to %d", +                        background_count); + +                priv->background_self_heal_count = background_count; +        } + +        dict_ret = dict_get_str (options, "metadata-self-heal", +                                 &self_heal); +        if (dict_ret == 0) { +                temp_ret = gf_string2boolean (self_heal, &metadata_self_heal); +                if (temp_ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Reconfiguration Invalid 'option metadata" +                                "-self-heal %s'. Defaulting to old value.", +                                self_heal); +                        ret = -1; +                        goto out; +                } + +                priv->metadata_self_heal = metadata_self_heal; +                gf_log (this->name, GF_LOG_DEBUG, +                        "Reconfiguring 'option metadata" +                        "-self-heal %s'.", +                        self_heal); +        } + +        dict_ret = dict_get_str (options, "data-self-heal", +                                 &self_heal); +        if (dict_ret == 0) { +                temp_ret = gf_string2boolean (self_heal, &data_self_heal); +                if (temp_ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Reconfiguration Invalid 'option data" +                                "-self-heal %s'. Defaulting to old value.", +                                self_heal); +                        ret = -1; +                        goto out; +                } + +                priv->data_self_heal = data_self_heal; +                gf_log (this->name, GF_LOG_DEBUG, +                        "Reconfiguring 'option data" +                        "-self-heal %s'.", self_heal); +        } + +        dict_ret = dict_get_str (options, "entry-self-heal", +                                 &self_heal); +        if (dict_ret == 0) { +                temp_ret = gf_string2boolean (self_heal, &entry_self_heal); +                if (temp_ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Reconfiguration Invalid 'option data" +                                "-self-heal %s'. Defaulting to old value.", +                                self_heal); +                        ret = -1; +                        goto out; +                } + +                priv->entry_self_heal = entry_self_heal; +                gf_log (this->name, GF_LOG_DEBUG, +                        "Reconfiguring 'option entry" +                        "-self-heal %s'.", self_heal); +        } + + +        dict_ret = dict_get_str (options, "strict-readdir", +                                 &str_readdir); +        if (dict_ret == 0) { +                temp_ret = gf_string2boolean (str_readdir, &strict_readdir); +                if (temp_ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Invalid 'option strict-readdir %s'. " +                                "Defaulting to old value.", +                                str_readdir); +                        ret = -1; +                        goto out; +                } + +                priv->strict_readdir = strict_readdir; +                gf_log (this->name, GF_LOG_DEBUG, +                        "Reconfiguring 'option strict" +                        "-readdir %s'.", str_readdir); +        } + +        dict_ret = dict_get_int32 (options, "data-self-heal-window-size", +                                   &window_size); +        if (dict_ret == 0) { +                gf_log (this->name, GF_LOG_DEBUG, +                        "Reconfiguring, Setting data self-heal window size to %d", +                        window_size); + +                priv->data_self_heal_window_size = window_size; +        }          else {                  priv->data_self_heal_window_size = 16;          } -	dict_ret = dict_get_str (options, "data-change-log", -				 &change_log); -	if (dict_ret == 0) { -		temp_ret = gf_string2boolean (change_log, &data_change_log); -		if (temp_ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Reconfiguration Invalid 'option data-" -				"change-log %s'. Defaulting to old value.", -				change_log); -			ret = -1; -			goto out; -		} - -		priv->data_change_log = data_change_log; -		gf_log (this->name, GF_LOG_DEBUG, -			"Reconfiguring 'option data-" -			"change-log %s'.", change_log); -	} - -	dict_ret = dict_get_str (options, "metadata-change-log", -				 &change_log); -	if (dict_ret == 0) { -		temp_ret = gf_string2boolean (change_log, -					 &metadata_change_log); -		if (temp_ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Invalid 'option metadata-change-log %s'. " -				"Defaulting to metadata-change-log as 'off'.", -				change_log); -			ret = -1; -			goto out; -		} - -		priv->metadata_change_log = metadata_change_log; -		gf_log (this->name, GF_LOG_DEBUG, -			"Reconfiguring 'option metadata-" -			"change-log %s'.", change_log); -	} - -	dict_ret = dict_get_str (options, "entry-change-log", -				 &change_log); -	if (dict_ret == 0) { -		temp_ret = gf_string2boolean (change_log, &entry_change_log); -		if (temp_ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Invalid 'option entry-change-log %s'. " -				"Defaulting to entry-change-log as 'on'.", -				change_log); -			ret = -1; -			goto out; -		} - -		priv->entry_change_log = entry_change_log; -		gf_log (this->name, GF_LOG_DEBUG, -			"Reconfiguring 'option entry-" -			"change-log %s'.", change_log); -	} +        dict_ret = dict_get_str (options, "data-change-log", +                                 &change_log); +        if (dict_ret == 0) { +                temp_ret = gf_string2boolean (change_log, &data_change_log); +                if (temp_ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Reconfiguration Invalid 'option data-" +                                "change-log %s'. Defaulting to old value.", +                                change_log); +                        ret = -1; +                        goto out; +                } + +                priv->data_change_log = data_change_log; +                gf_log (this->name, GF_LOG_DEBUG, +                        "Reconfiguring 'option data-" +                        "change-log %s'.", change_log); +        } + +        dict_ret = dict_get_str (options, "metadata-change-log", +                                 &change_log); +        if (dict_ret == 0) { +                temp_ret = gf_string2boolean (change_log, +                                              &metadata_change_log); +                if (temp_ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Invalid 'option metadata-change-log %s'. " +                                "Defaulting to metadata-change-log as 'off'.", +                                change_log); +                        ret = -1; +                        goto out; +                } + +                priv->metadata_change_log = metadata_change_log; +                gf_log (this->name, GF_LOG_DEBUG, +                        "Reconfiguring 'option metadata-" +                        "change-log %s'.", change_log); +        } + +        dict_ret = dict_get_str (options, "entry-change-log", +                                 &change_log); +        if (dict_ret == 0) { +                temp_ret = gf_string2boolean (change_log, &entry_change_log); +                if (temp_ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Invalid 'option entry-change-log %s'. " +                                "Defaulting to entry-change-log as 'on'.", +                                change_log); +                        ret = -1; +                        goto out; +                } + +                priv->entry_change_log = entry_change_log; +                gf_log (this->name, GF_LOG_DEBUG, +                        "Reconfiguring 'option entry-" +                        "change-log %s'.", change_log); +        }          dict_ret = dict_get_str (options, "data-self-heal-algorithm",                                   &self_heal_algo); @@ -311,140 +311,140 @@ reconfigure (xlator_t *this, dict_t *options)                  goto out;          } -	read_ret = dict_get_str (options, "read-subvolume", &read_subvol); +        read_ret = dict_get_str (options, "read-subvolume", &read_subvol); -	if (read_ret < 0) -		goto next;// No need to traverse, hence set the next option +        if (read_ret < 0) +                goto next;// No need to traverse, hence set the next option -	trav = this->children; -	flag = 0; -	while (trav) { -		if (!read_ret && !strcmp (read_subvol, trav->xlator->name)) { -			gf_log (this->name, GF_LOG_DEBUG, -				"Subvolume '%s' specified as read child.", -				trav->xlator->name); +        trav = this->children; +        flag = 0; +        while (trav) { +                if (!read_ret && !strcmp (read_subvol, trav->xlator->name)) { +                        gf_log (this->name, GF_LOG_DEBUG, +                                "Subvolume '%s' specified as read child.", +                                trav->xlator->name); -			flag = 1; +                        flag = 1;                          break; -		} +                } -		trav = trav->next; -	} +                trav = trav->next; +        } -	if (flag == 0 ) { +        if (flag == 0 ) { -		gf_log (this->name, GF_LOG_ERROR, -			"Invalid 'option read-subvolume %s', no such subvolume" -			, read_subvol); -		ret = -1; -		goto out; -	} +                gf_log (this->name, GF_LOG_ERROR, +                        "Invalid 'option read-subvolume %s', no such subvolume" +                        , read_subvol); +                ret = -1; +                goto out; +        }  next:  out: -	return ret; +        return ret;  }  static const char *favorite_child_warning_str = "You have specified subvolume '%s' " -	"as the 'favorite child'. This means that if a discrepancy in the content " -	"or attributes (ownership, permission, etc.) of a file is detected among " -	"the subvolumes, the file on '%s' will be considered the definitive " -	"version and its contents will OVERWRITE the contents of the file on other " -	"subvolumes. All versions of the file except that on '%s' " -	"WILL BE LOST."; +        "as the 'favorite child'. This means that if a discrepancy in the content " +        "or attributes (ownership, permission, etc.) of a file is detected among " +        "the subvolumes, the file on '%s' will be considered the definitive " +        "version and its contents will OVERWRITE the contents of the file on other " +        "subvolumes. All versions of the file except that on '%s' " +        "WILL BE LOST.";  static const char *no_lock_servers_warning_str = "You have set lock-server-count = 0. " -	"This means correctness is NO LONGER GUARANTEED in all cases. If two or more " -	"applications write to the same region of a file, there is a possibility that " -	"its copies will be INCONSISTENT. Set it to a value greater than 0 unless you " -	"are ABSOLUTELY SURE of what you are doing and WILL NOT HOLD GlusterFS " -	"RESPONSIBLE for inconsistent data. If you are in doubt, set it to a value " -	"greater than 0."; +        "This means correctness is NO LONGER GUARANTEED in all cases. If two or more " +        "applications write to the same region of a file, there is a possibility that " +        "its copies will be INCONSISTENT. Set it to a value greater than 0 unless you " +        "are ABSOLUTELY SURE of what you are doing and WILL NOT HOLD GlusterFS " +        "RESPONSIBLE for inconsistent data. If you are in doubt, set it to a value " +        "greater than 0.";  int32_t  init (xlator_t *this)  { -	afr_private_t * priv        = NULL; -	int             child_count = 0; -	xlator_list_t * trav        = NULL; -	int             i           = 0; -	int             ret         = -1; -	int             op_errno    = 0; - -	char * read_subvol     = NULL; -	char * fav_child       = NULL; -	char * self_heal       = NULL; +        afr_private_t * priv        = NULL; +        int             child_count = 0; +        xlator_list_t * trav        = NULL; +        int             i           = 0; +        int             ret         = -1; +        int             op_errno    = 0; + +        char * read_subvol     = NULL; +        char * fav_child       = NULL; +        char * self_heal       = NULL;          char * algo            = NULL; -	char * change_log      = NULL; -	char * strict_readdir  = NULL; +        char * change_log      = NULL; +        char * strict_readdir  = NULL;          char * inodelk_trace   = NULL;          char * entrylk_trace   = NULL;          int32_t background_count  = 0; -	int32_t lock_server_count = 1; +        int32_t lock_server_count = 1;          int32_t window_size       = 0; -	int    fav_ret       = -1; -	int    read_ret      = -1; -	int    dict_ret      = -1; +        int    fav_ret       = -1; +        int    read_ret      = -1; +        int    dict_ret      = -1; -	if (!this->children) { -		gf_log (this->name, GF_LOG_ERROR, -			"replicate translator needs more than one " +        if (!this->children) { +                gf_log (this->name, GF_LOG_ERROR, +                        "replicate translator needs more than one "                          "subvolume defined."); -		return -1; -	} +                return -1; +        } -	if (!this->parents) { -		gf_log (this->name, GF_LOG_WARNING, -			"Volume is dangling."); -	} +        if (!this->parents) { +                gf_log (this->name, GF_LOG_WARNING, +                        "Volume is dangling."); +        } -	ALLOC_OR_GOTO (this->private, afr_private_t, out); +        ALLOC_OR_GOTO (this->private, afr_private_t, out); -	priv = this->private; +        priv = this->private; -	read_ret = dict_get_str (this->options, "read-subvolume", &read_subvol); -	priv->read_child = -1; +        read_ret = dict_get_str (this->options, "read-subvolume", &read_subvol); +        priv->read_child = -1; -	fav_ret = dict_get_str (this->options, "favorite-child", &fav_child); -	priv->favorite_child = -1; +        fav_ret = dict_get_str (this->options, "favorite-child", &fav_child); +        priv->favorite_child = -1;          priv->background_self_heal_count = 16; -	dict_ret = dict_get_int32 (this->options, "background-self-heal-count", -				   &background_count); -	if (dict_ret == 0) { -		gf_log (this->name, GF_LOG_DEBUG, -			"Setting background self-heal count to %d", -			background_count); - -		priv->background_self_heal_count = background_count; -	} - -	/* Default values */ - -	priv->data_self_heal     = 1; -	priv->metadata_self_heal = 1; -	priv->entry_self_heal    = 1; - -	dict_ret = dict_get_str (this->options, "data-self-heal", &self_heal); -	if (dict_ret == 0) { -		ret = gf_string2boolean (self_heal, &priv->data_self_heal); -		if (ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Invalid 'option data-self-heal %s'. " -				"Defaulting to data-self-heal as 'on'", -				self_heal); -			priv->data_self_heal = 1; -		} -	} +        dict_ret = dict_get_int32 (this->options, "background-self-heal-count", +                                   &background_count); +        if (dict_ret == 0) { +                gf_log (this->name, GF_LOG_DEBUG, +                        "Setting background self-heal count to %d", +                        background_count); + +                priv->background_self_heal_count = background_count; +        } + +        /* Default values */ + +        priv->data_self_heal     = 1; +        priv->metadata_self_heal = 1; +        priv->entry_self_heal    = 1; + +        dict_ret = dict_get_str (this->options, "data-self-heal", &self_heal); +        if (dict_ret == 0) { +                ret = gf_string2boolean (self_heal, &priv->data_self_heal); +                if (ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Invalid 'option data-self-heal %s'. " +                                "Defaulting to data-self-heal as 'on'", +                                self_heal); +                        priv->data_self_heal = 1; +                } +        }          priv->data_self_heal_algorithm = ""; @@ -457,224 +457,224 @@ init (xlator_t *this)          priv->data_self_heal_window_size = 16; -	dict_ret = dict_get_int32 (this->options, "data-self-heal-window-size", -				   &window_size); -	if (dict_ret == 0) { -		gf_log (this->name, GF_LOG_DEBUG, -			"Setting data self-heal window size to %d", -			window_size); - -		priv->data_self_heal_window_size = window_size; -	} - -	dict_ret = dict_get_str (this->options, "metadata-self-heal", -				 &self_heal); -	if (dict_ret == 0) { -		ret = gf_string2boolean (self_heal, &priv->metadata_self_heal); -		if (ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Invalid 'option metadata-self-heal %s'. " -				"Defaulting to metadata-self-heal as 'on'.", -				self_heal); -			priv->metadata_self_heal = 1; -		} -	} - -	dict_ret = dict_get_str (this->options, "entry-self-heal", &self_heal); -	if (dict_ret == 0) { -		ret = gf_string2boolean (self_heal, &priv->entry_self_heal); -		if (ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Invalid 'option entry-self-heal %s'. " -				"Defaulting to entry-self-heal as 'on'.", -				self_heal); -			priv->entry_self_heal = 1; -		} -	} - -	/* Change log options */ - -	priv->data_change_log     = 1; -	priv->metadata_change_log = 1; -	priv->entry_change_log    = 1; +        dict_ret = dict_get_int32 (this->options, "data-self-heal-window-size", +                                   &window_size); +        if (dict_ret == 0) { +                gf_log (this->name, GF_LOG_DEBUG, +                        "Setting data self-heal window size to %d", +                        window_size); + +                priv->data_self_heal_window_size = window_size; +        } + +        dict_ret = dict_get_str (this->options, "metadata-self-heal", +                                 &self_heal); +        if (dict_ret == 0) { +                ret = gf_string2boolean (self_heal, &priv->metadata_self_heal); +                if (ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Invalid 'option metadata-self-heal %s'. " +                                "Defaulting to metadata-self-heal as 'on'.", +                                self_heal); +                        priv->metadata_self_heal = 1; +                } +        } + +        dict_ret = dict_get_str (this->options, "entry-self-heal", &self_heal); +        if (dict_ret == 0) { +                ret = gf_string2boolean (self_heal, &priv->entry_self_heal); +                if (ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Invalid 'option entry-self-heal %s'. " +                                "Defaulting to entry-self-heal as 'on'.", +                                self_heal); +                        priv->entry_self_heal = 1; +                } +        } + +        /* Change log options */ + +        priv->data_change_log     = 1; +        priv->metadata_change_log = 1; +        priv->entry_change_log    = 1;          priv->optimistic_change_log = 1; -	dict_ret = dict_get_str (this->options, "data-change-log", -				 &change_log); -	if (dict_ret == 0) { -		ret = gf_string2boolean (change_log, &priv->data_change_log); -		if (ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Invalid 'option data-change-log %s'. " -				"Defaulting to data-change-log as 'on'.", -				change_log); -			priv->data_change_log = 1; -		} -	} - -	dict_ret = dict_get_str (this->options, "metadata-change-log", -				 &change_log); -	if (dict_ret == 0) { -		ret = gf_string2boolean (change_log, -					 &priv->metadata_change_log); -		if (ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Invalid 'option metadata-change-log %s'. " -				"Defaulting to metadata-change-log as 'off'.", -				change_log); -			priv->metadata_change_log = 0; -		} -	} - -	dict_ret = dict_get_str (this->options, "entry-change-log", -				 &change_log); -	if (dict_ret == 0) { -		ret = gf_string2boolean (change_log, &priv->entry_change_log); -		if (ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Invalid 'option entry-change-log %s'. " -				"Defaulting to entry-change-log as 'on'.", -				change_log); -			priv->entry_change_log = 1; -		} -	} - -	dict_ret = dict_get_str (this->options, "optimistic-change-log", -				 &change_log); -	if (dict_ret == 0) { -		ret = gf_string2boolean (change_log, &priv->optimistic_change_log); -		if (ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Invalid 'option optimistic-change-log %s'. " -				"Defaulting to optimistic-change-log as 'on'.", -				change_log); -			priv->optimistic_change_log = 1; -		} -	} - -	/* Locking options */ +        dict_ret = dict_get_str (this->options, "data-change-log", +                                 &change_log); +        if (dict_ret == 0) { +                ret = gf_string2boolean (change_log, &priv->data_change_log); +                if (ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Invalid 'option data-change-log %s'. " +                                "Defaulting to data-change-log as 'on'.", +                                change_log); +                        priv->data_change_log = 1; +                } +        } + +        dict_ret = dict_get_str (this->options, "metadata-change-log", +                                 &change_log); +        if (dict_ret == 0) { +                ret = gf_string2boolean (change_log, +                                         &priv->metadata_change_log); +                if (ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Invalid 'option metadata-change-log %s'. " +                                "Defaulting to metadata-change-log as 'off'.", +                                change_log); +                        priv->metadata_change_log = 0; +                } +        } + +        dict_ret = dict_get_str (this->options, "entry-change-log", +                                 &change_log); +        if (dict_ret == 0) { +                ret = gf_string2boolean (change_log, &priv->entry_change_log); +                if (ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Invalid 'option entry-change-log %s'. " +                                "Defaulting to entry-change-log as 'on'.", +                                change_log); +                        priv->entry_change_log = 1; +                } +        } + +        dict_ret = dict_get_str (this->options, "optimistic-change-log", +                                 &change_log); +        if (dict_ret == 0) { +                ret = gf_string2boolean (change_log, &priv->optimistic_change_log); +                if (ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Invalid 'option optimistic-change-log %s'. " +                                "Defaulting to optimistic-change-log as 'on'.", +                                change_log); +                        priv->optimistic_change_log = 1; +                } +        } + +        /* Locking options */          priv->inodelk_trace = 0;          priv->entrylk_trace = 0; -	dict_ret = dict_get_str (this->options, "inodelk-trace", -				 &inodelk_trace); -	if (dict_ret == 0) { -		ret = gf_string2boolean (inodelk_trace, &priv->inodelk_trace); -		if (ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Invalid 'option inodelk-trace %s' ", +        dict_ret = dict_get_str (this->options, "inodelk-trace", +                                 &inodelk_trace); +        if (dict_ret == 0) { +                ret = gf_string2boolean (inodelk_trace, &priv->inodelk_trace); +                if (ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Invalid 'option inodelk-trace %s' ",                                  inodelk_trace); -			priv->inodelk_trace = 0; -		} -	} +                        priv->inodelk_trace = 0; +                } +        } -	dict_ret = dict_get_str (this->options, "entrylk-trace", -				 &entrylk_trace); -	if (dict_ret == 0) { -		ret = gf_string2boolean (entrylk_trace, &priv->entrylk_trace); -		if (ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Invalid 'option entrylk-trace %s' ", +        dict_ret = dict_get_str (this->options, "entrylk-trace", +                                 &entrylk_trace); +        if (dict_ret == 0) { +                ret = gf_string2boolean (entrylk_trace, &priv->entrylk_trace); +                if (ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Invalid 'option entrylk-trace %s' ",                                  inodelk_trace); -			priv->entrylk_trace = 0; -		} -	} +                        priv->entrylk_trace = 0; +                } +        } -	priv->data_lock_server_count = 1; -	priv->metadata_lock_server_count = 0; -	priv->entry_lock_server_count = 1; +        priv->data_lock_server_count = 1; +        priv->metadata_lock_server_count = 0; +        priv->entry_lock_server_count = 1; -	dict_ret = dict_get_int32 (this->options, "data-lock-server-count", -				   &lock_server_count); -	if (dict_ret == 0) { -		gf_log (this->name, GF_LOG_DEBUG, -			"Setting data lock server count to %d.", -			lock_server_count); +        dict_ret = dict_get_int32 (this->options, "data-lock-server-count", +                                   &lock_server_count); +        if (dict_ret == 0) { +                gf_log (this->name, GF_LOG_DEBUG, +                        "Setting data lock server count to %d.", +                        lock_server_count); -		if (lock_server_count == 0) -			gf_log (this->name, GF_LOG_WARNING, "%s", +                if (lock_server_count == 0) +                        gf_log (this->name, GF_LOG_WARNING, "%s",                                  no_lock_servers_warning_str); -		priv->data_lock_server_count = lock_server_count; -	} - - -	dict_ret = dict_get_int32 (this->options, -				   "metadata-lock-server-count", -				   &lock_server_count); -	if (dict_ret == 0) { -		gf_log (this->name, GF_LOG_DEBUG, -			"Setting metadata lock server count to %d.", -			lock_server_count); -		priv->metadata_lock_server_count = lock_server_count; -	} - - -	dict_ret = dict_get_int32 (this->options, "entry-lock-server-count", -				   &lock_server_count); -	if (dict_ret == 0) { -		gf_log (this->name, GF_LOG_DEBUG, -			"Setting entry lock server count to %d.", -			lock_server_count); - -		priv->entry_lock_server_count = lock_server_count; -	} - -	priv->strict_readdir = _gf_false; - -	dict_ret = dict_get_str (this->options, "strict-readdir", -				 &strict_readdir); -	if (dict_ret == 0) { -		ret = gf_string2boolean (strict_readdir, &priv->strict_readdir); -		if (ret < 0) { -			gf_log (this->name, GF_LOG_WARNING, -				"Invalid 'option strict-readdir %s'. " -				"Defaulting to strict-readdir as 'off'.", -				strict_readdir); -		} -	} - -	trav = this->children; -	while (trav) { -		if (!read_ret && !strcmp (read_subvol, trav->xlator->name)) { -			gf_log (this->name, GF_LOG_DEBUG, -				"Subvolume '%s' specified as read child.", -				trav->xlator->name); - -			priv->read_child = child_count; -		} - -		if (fav_ret == 0 && !strcmp (fav_child, trav->xlator->name)) { -			gf_log (this->name, GF_LOG_WARNING, -				favorite_child_warning_str, trav->xlator->name, -				trav->xlator->name, trav->xlator->name); -			priv->favorite_child = child_count; -		} - -		child_count++; -		trav = trav->next; -	} - -	priv->wait_count = 1; - -	priv->child_count = child_count; - -	LOCK_INIT (&priv->lock); +                priv->data_lock_server_count = lock_server_count; +        } + + +        dict_ret = dict_get_int32 (this->options, +                                   "metadata-lock-server-count", +                                   &lock_server_count); +        if (dict_ret == 0) { +                gf_log (this->name, GF_LOG_DEBUG, +                        "Setting metadata lock server count to %d.", +                        lock_server_count); +                priv->metadata_lock_server_count = lock_server_count; +        } + + +        dict_ret = dict_get_int32 (this->options, "entry-lock-server-count", +                                   &lock_server_count); +        if (dict_ret == 0) { +                gf_log (this->name, GF_LOG_DEBUG, +                        "Setting entry lock server count to %d.", +                        lock_server_count); + +                priv->entry_lock_server_count = lock_server_count; +        } + +        priv->strict_readdir = _gf_false; + +        dict_ret = dict_get_str (this->options, "strict-readdir", +                                 &strict_readdir); +        if (dict_ret == 0) { +                ret = gf_string2boolean (strict_readdir, &priv->strict_readdir); +                if (ret < 0) { +                        gf_log (this->name, GF_LOG_WARNING, +                                "Invalid 'option strict-readdir %s'. " +                                "Defaulting to strict-readdir as 'off'.", +                                strict_readdir); +                } +        } + +        trav = this->children; +        while (trav) { +                if (!read_ret && !strcmp (read_subvol, trav->xlator->name)) { +                        gf_log (this->name, GF_LOG_DEBUG, +                                "Subvolume '%s' specified as read child.", +                                trav->xlator->name); + +                        priv->read_child = child_count; +                } + +                if (fav_ret == 0 && !strcmp (fav_child, trav->xlator->name)) { +                        gf_log (this->name, GF_LOG_WARNING, +                                favorite_child_warning_str, trav->xlator->name, +                                trav->xlator->name, trav->xlator->name); +                        priv->favorite_child = child_count; +                } + +                child_count++; +                trav = trav->next; +        } + +        priv->wait_count = 1; + +        priv->child_count = child_count; + +        LOCK_INIT (&priv->lock);          LOCK_INIT (&priv->read_child_lock); -	priv->child_up = GF_CALLOC (sizeof (unsigned char), child_count, +        priv->child_up = GF_CALLOC (sizeof (unsigned char), child_count,                                      gf_afr_mt_char); -	if (!priv->child_up) { -		gf_log (this->name, GF_LOG_ERROR, -			"Out of memory."); -		ret = -ENOMEM; -		goto out; -	} +        if (!priv->child_up) { +                gf_log (this->name, GF_LOG_ERROR, +                        "Out of memory."); +                ret = -ENOMEM; +                goto out; +        }          for (i = 0; i < child_count; i++)                  priv->child_up[i] = -1; /* start with unknown state. @@ -683,18 +683,18 @@ init (xlator_t *this)                                             reliably                                          */ -	priv->children = GF_CALLOC (sizeof (xlator_t *), child_count, +        priv->children = GF_CALLOC (sizeof (xlator_t *), child_count,                                      gf_afr_mt_xlator_t); -	if (!priv->children) { -		gf_log (this->name, GF_LOG_ERROR, -			"Out of memory."); -		ret = -ENOMEM; -		goto out; -	} +        if (!priv->children) { +                gf_log (this->name, GF_LOG_ERROR, +                        "Out of memory."); +                ret = -ENOMEM; +                goto out; +        }          priv->pending_key = GF_CALLOC (sizeof (*priv->pending_key), -                                        child_count, -                                        gf_afr_mt_char); +                                       child_count, +                                       gf_afr_mt_char);          if (!priv->pending_key) {                  gf_log (this->name, GF_LOG_ERROR,                          "Out of memory."); @@ -702,10 +702,10 @@ init (xlator_t *this)                  goto out;          } -	trav = this->children; -	i = 0; -	while (i < child_count) { -		priv->children[i] = trav->xlator; +        trav = this->children; +        i = 0; +        while (i < child_count) { +                priv->children[i] = trav->xlator;                  ret = gf_asprintf (&priv->pending_key[i], "%s.%s",                                     AFR_XATTR_PREFIX, @@ -717,9 +717,9 @@ init (xlator_t *this)                          goto out;                  } -		trav = trav->next; -		i++; -	} +                trav = trav->next; +                i++; +        }          LOCK_INIT (&priv->root_inode_lk);          priv->first_lookup = 1; @@ -728,65 +728,65 @@ init (xlator_t *this)          pthread_mutex_init (&priv->mutex, NULL);          INIT_LIST_HEAD (&priv->saved_fds); -	ret = 0; +        ret = 0;  out: -	return ret; +        return ret;  }  int  fini (xlator_t *this)  { -	return 0; +        return 0;  }  struct xlator_fops fops = { -	.lookup      = afr_lookup, -	.open        = afr_open, -	.lk          = afr_lk, -	.flush       = afr_flush, -	.statfs      = afr_statfs, -	.fsync       = afr_fsync, -	.fsyncdir    = afr_fsyncdir, -	.xattrop     = afr_xattrop, -	.fxattrop    = afr_fxattrop, -	.inodelk     = afr_inodelk, -	.finodelk    = afr_finodelk, -	.entrylk     = afr_entrylk, -	.fentrylk    = afr_fentrylk, - -	/* inode read */ -	.access      = afr_access, -	.stat        = afr_stat, -	.fstat       = afr_fstat, -	.readlink    = afr_readlink, -	.getxattr    = afr_getxattr, -	.readv       = afr_readv, - -	/* inode write */ -	.writev      = afr_writev, -	.truncate    = afr_truncate, -	.ftruncate   = afr_ftruncate, -	.setxattr    = afr_setxattr, +        .lookup      = afr_lookup, +        .open        = afr_open, +        .lk          = afr_lk, +        .flush       = afr_flush, +        .statfs      = afr_statfs, +        .fsync       = afr_fsync, +        .fsyncdir    = afr_fsyncdir, +        .xattrop     = afr_xattrop, +        .fxattrop    = afr_fxattrop, +        .inodelk     = afr_inodelk, +        .finodelk    = afr_finodelk, +        .entrylk     = afr_entrylk, +        .fentrylk    = afr_fentrylk, + +        /* inode read */ +        .access      = afr_access, +        .stat        = afr_stat, +        .fstat       = afr_fstat, +        .readlink    = afr_readlink, +        .getxattr    = afr_getxattr, +        .readv       = afr_readv, + +        /* inode write */ +        .writev      = afr_writev, +        .truncate    = afr_truncate, +        .ftruncate   = afr_ftruncate, +        .setxattr    = afr_setxattr,          .setattr     = afr_setattr, -	.fsetattr    = afr_fsetattr, -	.removexattr = afr_removexattr, - -	/* dir read */ -	.opendir     = afr_opendir, -	.readdir     = afr_readdir, -	.readdirp    = afr_readdirp, - -	/* dir write */ -	.create      = afr_create, -	.mknod       = afr_mknod, -	.mkdir       = afr_mkdir, -	.unlink      = afr_unlink, -	.rmdir       = afr_rmdir, -	.link        = afr_link, -	.symlink     = afr_symlink, -	.rename      = afr_rename, +        .fsetattr    = afr_fsetattr, +        .removexattr = afr_removexattr, + +        /* dir read */ +        .opendir     = afr_opendir, +        .readdir     = afr_readdir, +        .readdirp    = afr_readdirp, + +        /* dir write */ +        .create      = afr_create, +        .mknod       = afr_mknod, +        .mkdir       = afr_mkdir, +        .unlink      = afr_unlink, +        .rmdir       = afr_rmdir, +        .link        = afr_link, +        .symlink     = afr_symlink, +        .rename      = afr_rename,  }; @@ -796,25 +796,25 @@ struct xlator_dumpops dumpops = {  struct xlator_cbks cbks = { -	.release     = afr_release, -	.releasedir  = afr_releasedir, +        .release     = afr_release, +        .releasedir  = afr_releasedir,  };  struct volume_options options[] = { -	{ .key  = {"read-subvolume" }, -	  .type = GF_OPTION_TYPE_XLATOR -	}, -	{ .key  = {"favorite-child"}, -	  .type = GF_OPTION_TYPE_XLATOR -	}, +        { .key  = {"read-subvolume" }, +          .type = GF_OPTION_TYPE_XLATOR +        }, +        { .key  = {"favorite-child"}, +          .type = GF_OPTION_TYPE_XLATOR +        },          { .key  = {"background-self-heal-count"},            .type = GF_OPTION_TYPE_INT,            .min  = 0          }, -	{ .key  = {"data-self-heal"}, -	  .type = GF_OPTION_TYPE_BOOL -	}, +        { .key  = {"data-self-heal"}, +          .type = GF_OPTION_TYPE_BOOL +        },          { .key  = {"data-self-heal-algorithm"},            .type = GF_OPTION_TYPE_STR          }, @@ -823,38 +823,38 @@ struct volume_options options[] = {            .min  = 1,            .max  = 1024          }, -	{ .key  = {"metadata-self-heal"}, -	  .type = GF_OPTION_TYPE_BOOL -	}, -	{ .key  = {"entry-self-heal"}, -	  .type = GF_OPTION_TYPE_BOOL -	}, -	{ .key  = {"data-change-log"}, -	  .type = GF_OPTION_TYPE_BOOL -	}, -	{ .key  = {"metadata-change-log"}, -	  .type = GF_OPTION_TYPE_BOOL -	}, -	{ .key  = {"entry-change-log"}, -	  .type = GF_OPTION_TYPE_BOOL -	}, -	{ .key  = {"optimistic-change-log"}, -	  .type = GF_OPTION_TYPE_BOOL -	}, -	{ .key  = {"data-lock-server-count"}, -	  .type = GF_OPTION_TYPE_INT, -	  .min  = 0 -	}, -	{ .key  = {"metadata-lock-server-count"}, -	  .type = GF_OPTION_TYPE_INT, -	  .min  = 0 -	}, -	{ .key  = {"entry-lock-server-count"}, -	  .type = GF_OPTION_TYPE_INT, -	  .min  = 0 -	}, -	{ .key  = {"strict-readdir"}, -	  .type = GF_OPTION_TYPE_BOOL, -	}, -	{ .key  = {NULL} }, +        { .key  = {"metadata-self-heal"}, +          .type = GF_OPTION_TYPE_BOOL +        }, +        { .key  = {"entry-self-heal"}, +          .type = GF_OPTION_TYPE_BOOL +        }, +        { .key  = {"data-change-log"}, +          .type = GF_OPTION_TYPE_BOOL +        }, +        { .key  = {"metadata-change-log"}, +          .type = GF_OPTION_TYPE_BOOL +        }, +        { .key  = {"entry-change-log"}, +          .type = GF_OPTION_TYPE_BOOL +        }, +        { .key  = {"optimistic-change-log"}, +          .type = GF_OPTION_TYPE_BOOL +        }, +        { .key  = {"data-lock-server-count"}, +          .type = GF_OPTION_TYPE_INT, +          .min  = 0 +        }, +        { .key  = {"metadata-lock-server-count"}, +          .type = GF_OPTION_TYPE_INT, +          .min  = 0 +        }, +        { .key  = {"entry-lock-server-count"}, +          .type = GF_OPTION_TYPE_INT, +          .min  = 0 +        }, +        { .key  = {"strict-readdir"}, +          .type = GF_OPTION_TYPE_BOOL, +        }, +        { .key  = {NULL} },  };  | 
