summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/dht/src/dht-common.h
diff options
context:
space:
mode:
authorAmar Tumballi <amar@gluster.com>2011-07-01 04:41:54 +0000
committerAnand Avati <avati@gluster.com>2011-07-14 01:01:44 -0700
commit8d18bc22d1cfc8a481bc8d20da5843c65b567226 (patch)
tree680b1a4884b382aef8a8789a6dc6623797965fc4 /xlators/cluster/dht/src/dht-common.h
parent3f76fe277ec0a826bf3052134ad877ee65ce9e79 (diff)
distribute: bring in feature to do rebalance from inside
do the 'rebalance' on a file with 'setxattr()' with 'distribute.migrate-data' key. the valid 'value' is "force" or anything else. current implementation of 'rebalance' is same as 'glusterd-rebalance', and hence comes with limitation of not rebalancing hardlinks, non-regular files, and files with open-fds. Signed-off-by: Amar Tumballi <amar@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 3070 (After 'rebalance', the gfid of the file gets changed) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=3070
Diffstat (limited to 'xlators/cluster/dht/src/dht-common.h')
-rw-r--r--xlators/cluster/dht/src/dht-common.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/xlators/cluster/dht/src/dht-common.h b/xlators/cluster/dht/src/dht-common.h
index 43056c78c..2fe85d00e 100644
--- a/xlators/cluster/dht/src/dht-common.h
+++ b/xlators/cluster/dht/src/dht-common.h
@@ -24,6 +24,7 @@
#include "dht-mem-types.h"
#include "libxlator.h"
+#include "syncop.h"
#ifndef _DHT_H
#define _DHT_H
@@ -140,6 +141,10 @@ struct dht_local {
/* flag used to make sure we need to return estale in
{lookup,revalidate}_cbk */
char return_estale;
+
+ /* rebalance related */
+#define to_subvol hashed_subvol
+#define from_subvol cached_subvol
};
typedef struct dht_local dht_local_t;
@@ -178,6 +183,8 @@ struct dht_conf {
/* This is the count used as the distribute layout for a directory */
/* Will be a global flag to control the layout spread count */
uint32_t dir_spread_cnt;
+
+ struct syncenv *env; /* The env pointer to the rebalance synctask */
};
typedef struct dht_conf dht_conf_t;
@@ -330,4 +337,5 @@ int dht_fix_directory_layout (call_frame_t *frame,
dht_selfheal_dir_cbk_t dir_cbk,
dht_layout_t *layout);
+int dht_start_rebalance_task (xlator_t *this, call_frame_t *frame);
#endif /* _DHT_H */