diff options
Diffstat (limited to 'xlators/cluster/dht/src/dht-helper.c')
| -rw-r--r-- | xlators/cluster/dht/src/dht-helper.c | 300 | 
1 files changed, 150 insertions, 150 deletions
diff --git a/xlators/cluster/dht/src/dht-helper.c b/xlators/cluster/dht/src/dht-helper.c index 7da3a7a61f1..00c710f6145 100644 --- a/xlators/cluster/dht/src/dht-helper.c +++ b/xlators/cluster/dht/src/dht-helper.c @@ -1,20 +1,20 @@  /* -   Copyright (c) 2008-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) 2008-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/>.  */  #ifndef _CONFIG_H @@ -31,52 +31,52 @@  int  dht_frame_return (call_frame_t *frame)  { -	dht_local_t *local = NULL; -	int          this_call_cnt = -1; +        dht_local_t *local = NULL; +        int          this_call_cnt = -1; -	if (!frame) -		return -1; +        if (!frame) +                return -1; -	local = frame->local; +        local = frame->local; -	LOCK (&frame->lock); -	{ -		this_call_cnt = --local->call_cnt; -	} -	UNLOCK (&frame->lock); +        LOCK (&frame->lock); +        { +                this_call_cnt = --local->call_cnt; +        } +        UNLOCK (&frame->lock); -	return this_call_cnt; +        return this_call_cnt;  }  int  dht_itransform (xlator_t *this, xlator_t *subvol, uint64_t x, uint64_t *y_p)  { -	dht_conf_t *conf = NULL; -	int         cnt = 0; -	int         max = 0; -	uint64_t    y = 0; +        dht_conf_t *conf = NULL; +        int         cnt = 0; +        int         max = 0; +        uint64_t    y = 0; -	if (x == ((uint64_t) -1)) { -		y = (uint64_t) -1; -		goto out; -	} +        if (x == ((uint64_t) -1)) { +                y = (uint64_t) -1; +                goto out; +        } -	conf = this->private; +        conf = this->private;          if (!conf)                  goto out; -	max = conf->subvolume_cnt; -	cnt = dht_subvol_cnt (this, subvol); +        max = conf->subvolume_cnt; +        cnt = dht_subvol_cnt (this, subvol); -	y = ((x * max) + cnt); +        y = ((x * max) + cnt);  out: -	if (y_p) -		*y_p = y; +        if (y_p) +                *y_p = y; -	return 0; +        return 0;  }  int @@ -141,76 +141,76 @@ out:  int  dht_deitransform (xlator_t *this, uint64_t y, xlator_t **subvol_p, -		  uint64_t *x_p) +                  uint64_t *x_p)  { -	dht_conf_t *conf = NULL; -	int         cnt = 0; -	int         max = 0; -	uint64_t    x = 0; -	xlator_t   *subvol = 0; +        dht_conf_t *conf = NULL; +        int         cnt = 0; +        int         max = 0; +        uint64_t    x = 0; +        xlator_t   *subvol = 0;          if (!this->private)                  goto out; -	conf = this->private; -	max = conf->subvolume_cnt; +        conf = this->private; +        max = conf->subvolume_cnt; -	cnt = y % max; -	x   = y / max; +        cnt = y % max; +        x   = y / max; -	subvol = conf->subvolumes[cnt]; +        subvol = conf->subvolumes[cnt]; -	if (subvol_p) -		*subvol_p = subvol; +        if (subvol_p) +                *subvol_p = subvol; -	if (x_p) -		*x_p = x; +        if (x_p) +                *x_p = x;  out: -	return 0; +        return 0;  }  void  dht_local_wipe (xlator_t *this, dht_local_t *local)  { -	if (!local) -		return; +        if (!local) +                return; -	loc_wipe (&local->loc); -	loc_wipe (&local->loc2); +        loc_wipe (&local->loc); +        loc_wipe (&local->loc2); -	if (local->xattr) -		dict_unref (local->xattr); +        if (local->xattr) +                dict_unref (local->xattr); -	if (local->inode) -		inode_unref (local->inode); +        if (local->inode) +                inode_unref (local->inode); -	if (local->layout) { -		dht_layout_unref (this, local->layout); +        if (local->layout) { +                dht_layout_unref (this, local->layout);                  local->layout = NULL;          } -	loc_wipe (&local->linkfile.loc); +        loc_wipe (&local->linkfile.loc); -	if (local->linkfile.xattr) -		dict_unref (local->linkfile.xattr); +        if (local->linkfile.xattr) +                dict_unref (local->linkfile.xattr); -	if (local->linkfile.inode) -		inode_unref (local->linkfile.inode); +        if (local->linkfile.inode) +                inode_unref (local->linkfile.inode); -	if (local->fd) { -		fd_unref (local->fd); -		local->fd = NULL; -	} +        if (local->fd) { +                fd_unref (local->fd); +                local->fd = NULL; +        }          if (local->params) {                  dict_unref (local->params);                  local->params = NULL;          } -	if (local->xattr_req) -		dict_unref (local->xattr_req); +        if (local->xattr_req) +                dict_unref (local->xattr_req);          if (local->selfheal.layout) {                  dht_layout_unref (this, local->selfheal.layout); @@ -222,31 +222,31 @@ dht_local_wipe (xlator_t *this, dht_local_t *local)          }          if (local->key) { -               GF_FREE (local->key); +                GF_FREE (local->key);          } -            -	GF_FREE (local); + +        GF_FREE (local);  }  dht_local_t *  dht_local_init (call_frame_t *frame)  { -	dht_local_t *local = NULL; +        dht_local_t *local = NULL; -	/* TODO: use mem-pool */ -	local = GF_CALLOC (1, sizeof (*local), +        /* TODO: use mem-pool */ +        local = GF_CALLOC (1, sizeof (*local),                             gf_dht_mt_dht_local_t); -	if (!local) -		return NULL; +        if (!local) +                return NULL; -	local->op_ret = -1; -	local->op_errno = EUCLEAN; +        local->op_ret = -1; +        local->op_errno = EUCLEAN; -	frame->local = local; +        frame->local = local; -	return local; +        return local;  } @@ -266,27 +266,27 @@ basestr (const char *str)  xlator_t *  dht_first_up_subvol (xlator_t *this)  { -	dht_conf_t *conf = NULL; -	xlator_t   *child = NULL; -	int         i = 0; +        dht_conf_t *conf = NULL; +        xlator_t   *child = NULL; +        int         i = 0; -	conf = this->private; +        conf = this->private;          if (!conf)                  goto out; -	LOCK (&conf->subvolume_lock); -	{ -		for (i = 0; i < conf->subvolume_cnt; i++) { -			if (conf->subvolume_status[i]) { -				child = conf->subvolumes[i]; -				break; -			} -		} -	} -	UNLOCK (&conf->subvolume_lock); +        LOCK (&conf->subvolume_lock); +        { +                for (i = 0; i < conf->subvolume_cnt; i++) { +                        if (conf->subvolume_status[i]) { +                                child = conf->subvolumes[i]; +                                break; +                        } +                } +        } +        UNLOCK (&conf->subvolume_lock);  out: -	return child; +        return child;  }  xlator_t * @@ -366,7 +366,7 @@ dht_subvol_get_cached (xlator_t *this, inode_t *inode)                  goto out;          } -	subvol = layout->list[0].xlator; +        subvol = layout->list[0].xlator;  out:          if (layout) { @@ -380,84 +380,84 @@ out:  xlator_t *  dht_subvol_next (xlator_t *this, xlator_t *prev)  { -	dht_conf_t *conf = NULL; -	int         i = 0; -	xlator_t   *next = NULL; +        dht_conf_t *conf = NULL; +        int         i = 0; +        xlator_t   *next = NULL; -	conf = this->private; +        conf = this->private;          if (!conf)                  goto out; -	for (i = 0; i < conf->subvolume_cnt; i++) { -		if (conf->subvolumes[i] == prev) { -			if ((i + 1) < conf->subvolume_cnt) -				next = conf->subvolumes[i + 1]; -			break; -		} -	} +        for (i = 0; i < conf->subvolume_cnt; i++) { +                if (conf->subvolumes[i] == prev) { +                        if ((i + 1) < conf->subvolume_cnt) +                                next = conf->subvolumes[i + 1]; +                        break; +                } +        }  out: -	return next; +        return next;  }  int  dht_subvol_cnt (xlator_t *this, xlator_t *subvol)  { -	int i = 0; -	int ret = -1; -	dht_conf_t *conf = NULL; +        int i = 0; +        int ret = -1; +        dht_conf_t *conf = NULL; -	conf = this->private; +        conf = this->private;          if (!conf)                  goto out; -	for (i = 0; i < conf->subvolume_cnt; i++) { -		if (subvol == conf->subvolumes[i]) { -			ret = i; -			break; -		} -	} +        for (i = 0; i < conf->subvolume_cnt; i++) { +                if (subvol == conf->subvolumes[i]) { +                        ret = i; +                        break; +                } +        }  out: -	return ret; +        return ret;  } -#define set_if_greater(a, b) do {		\ -		if ((a) < (b))			\ -			(a) = (b);		\ -	} while (0) +#define set_if_greater(a, b) do {               \ +                if ((a) < (b))                  \ +                        (a) = (b);              \ +        } while (0)  int  dht_iatt_merge (xlator_t *this, struct iatt *to, -		struct iatt *from, xlator_t *subvol) +                struct iatt *from, xlator_t *subvol)  {          if (!from || !to)                  return 0; -	to->ia_dev      = from->ia_dev; +        to->ia_dev      = from->ia_dev;          uuid_copy (to->ia_gfid, from->ia_gfid); -	dht_itransform (this, subvol, from->ia_ino, &to->ia_ino); +        dht_itransform (this, subvol, from->ia_ino, &to->ia_ino); -	to->ia_prot     = from->ia_prot; -	to->ia_type     = from->ia_type; -	to->ia_nlink    = from->ia_nlink; -	to->ia_rdev     = from->ia_rdev; -	to->ia_size    += from->ia_size; -	to->ia_blksize  = from->ia_blksize; -	to->ia_blocks  += from->ia_blocks; +        to->ia_prot     = from->ia_prot; +        to->ia_type     = from->ia_type; +        to->ia_nlink    = from->ia_nlink; +        to->ia_rdev     = from->ia_rdev; +        to->ia_size    += from->ia_size; +        to->ia_blksize  = from->ia_blksize; +        to->ia_blocks  += from->ia_blocks; -	set_if_greater (to->ia_uid, from->ia_uid); -	set_if_greater (to->ia_gid, from->ia_gid); +        set_if_greater (to->ia_uid, from->ia_uid); +        set_if_greater (to->ia_gid, from->ia_gid); -	set_if_greater (to->ia_atime, from->ia_atime); -	set_if_greater (to->ia_mtime, from->ia_mtime); -	set_if_greater (to->ia_ctime, from->ia_ctime); +        set_if_greater (to->ia_atime, from->ia_atime); +        set_if_greater (to->ia_mtime, from->ia_mtime); +        set_if_greater (to->ia_ctime, from->ia_ctime); -	return 0; +        return 0;  }  int  | 
