diff options
author | Pranith K <pranithk@gluster.com> | 2011-06-27 03:10:23 +0000 |
---|---|---|
committer | Anand Avati <avati@gluster.com> | 2011-07-17 07:44:59 -0700 |
commit | 64b2a56ad0f8ddae9ece8696f7d50a3129c145a3 (patch) | |
tree | 0a19177537a36b24cb8f64a111c50c495e17b6d5 /xlators/cluster/afr/src/afr.h | |
parent | bf8e3a864eafe7eef5795cd134f6c0d5812a4f17 (diff) |
cluster/afr: Move afr local alloc functions from header files to sources
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Signed-off-by: Anand Avati <avati@gluster.com>
BUG: 2840 (files not getting self-healed when the first child goes down)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2840
Diffstat (limited to 'xlators/cluster/afr/src/afr.h')
-rw-r--r-- | xlators/cluster/afr/src/afr.h | 110 |
1 files changed, 10 insertions, 100 deletions
diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h index abfaaac0e7b..55c485f14d8 100644 --- a/xlators/cluster/afr/src/afr.h +++ b/xlators/cluster/afr/src/afr.h @@ -822,45 +822,19 @@ AFR_BASENAME (const char *str) return __basename_str; } -/* initialize local_t */ -static inline int -AFR_LOCAL_INIT (afr_local_t *local, afr_private_t *priv) -{ - int child_up_count = 0; - - local->child_up = GF_CALLOC (sizeof (*local->child_up), - priv->child_count, - gf_afr_mt_char); - if (!local->child_up) { - return -ENOMEM; - } - - memcpy (local->child_up, priv->child_up, - sizeof (*local->child_up) * priv->child_count); - - child_up_count = afr_up_children_count (priv->child_count, local->child_up); - - if (priv->optimistic_change_log && child_up_count == priv->child_count) - local->optimistic_change_log = 1; - - local->call_count = afr_up_children_count (priv->child_count, local->child_up); - if (local->call_count == 0) { - gf_log (THIS->name, GF_LOG_INFO, "no subvolumes up"); - return -ENOTCONN; - } - - local->transaction.erase_pending = 1; - - local->op_ret = -1; - local->op_errno = EUCLEAN; - - local->internal_lock.lock_op_ret = -1; - local->internal_lock.lock_op_errno = EUCLEAN; +int +afr_transaction_local_init (afr_local_t *local, afr_private_t *priv); +int32_t +afr_marker_getxattr (call_frame_t *frame, xlator_t *this, + loc_t *loc, const char *name,afr_local_t *local, afr_private_t *priv ); - return 0; -} +int +AFR_LOCAL_INIT (afr_local_t *local, afr_private_t *priv); +int +afr_internal_lock_init (afr_internal_lock_t *lk, size_t child_count, + transaction_lk_type_t lk_type); /** * first_up_child - return the index of the first child that is up @@ -888,68 +862,4 @@ afr_first_up_child (afr_private_t *priv) return ret; } - -static inline int -afr_transaction_local_init (afr_local_t *local, afr_private_t *priv) -{ - int i; - - local->first_up_child = afr_first_up_child (priv); - - local->child_errno = GF_CALLOC (sizeof (*local->child_errno), - priv->child_count, - gf_afr_mt_int32_t); - if (!local->child_errno) { - return -ENOMEM; - } - - local->pending = GF_CALLOC (sizeof (*local->pending), - priv->child_count, - gf_afr_mt_int32_t); - - if (!local->pending) { - return -ENOMEM; - } - - for (i = 0; i < priv->child_count; i++) { - local->pending[i] = GF_CALLOC (sizeof (*local->pending[i]), - 3, /* data + metadata + entry */ - gf_afr_mt_int32_t); - if (!local->pending[i]) - return -ENOMEM; - } - - local->internal_lock.inode_locked_nodes = - GF_CALLOC (sizeof (*local->internal_lock.inode_locked_nodes), - priv->child_count, - gf_afr_mt_char); - - local->internal_lock.entry_locked_nodes = - GF_CALLOC (sizeof (*local->internal_lock.entry_locked_nodes), - priv->child_count, - gf_afr_mt_char); - - local->internal_lock.locked_nodes = - GF_CALLOC (sizeof (*local->internal_lock.locked_nodes), - priv->child_count, - gf_afr_mt_char); - - local->internal_lock.lower_locked_nodes - = GF_CALLOC (sizeof (*local->internal_lock.lower_locked_nodes), - priv->child_count, - gf_afr_mt_char); - - local->transaction.child_errno = GF_CALLOC (sizeof (*local->transaction.child_errno), - priv->child_count, - gf_afr_mt_int32_t); - - local->internal_lock.transaction_lk_type = AFR_TRANSACTION_LK; - - return 0; -} - -int32_t -afr_marker_getxattr (call_frame_t *frame, xlator_t *this, - loc_t *loc, const char *name,afr_local_t *local, afr_private_t *priv ); - #endif /* __AFR_H__ */ |