summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/dht/src/dht-selfheal.c
diff options
context:
space:
mode:
authorJeff Darcy <jdarcy@redhat.com>2012-03-23 13:16:06 -0400
committerAnand Avati <avati@redhat.com>2012-05-31 17:13:29 -0700
commite066a5fea7bdaa5da78e49c9a5bf344af2f33d3c (patch)
tree12e77cb78c60de41672c005aca9e7d3c2f5c282a /xlators/cluster/dht/src/dht-selfheal.c
parenta5b8c32afba6509c4de4ec08830f5833fcbdaf1a (diff)
distribute: support user-specified layouts.
The new type is DHT_HASH_TYPE_DM_USER=1 (on disk in network byte order) and we treat it the same as DHT_HASH_TYPE_DM except that we don't stomp on it during rebalance. Change-Id: I893571a9b89577acdea2fe868915b18d3663fd77 BUG: 807312 Signed-off-by: Jeff Darcy <jdarcy@redhat.com> Reviewed-on: http://review.gluster.com/3004 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'xlators/cluster/dht/src/dht-selfheal.c')
-rw-r--r--xlators/cluster/dht/src/dht-selfheal.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/xlators/cluster/dht/src/dht-selfheal.c b/xlators/cluster/dht/src/dht-selfheal.c
index 68d9416fa..7ceb80157 100644
--- a/xlators/cluster/dht/src/dht-selfheal.c
+++ b/xlators/cluster/dht/src/dht-selfheal.c
@@ -576,6 +576,12 @@ dht_fix_layout_of_directory (call_frame_t *frame, loc_t *loc,
priv = this->private;
local = frame->local;
+ if (layout->type == DHT_HASH_TYPE_DM_USER) {
+ gf_log (THIS->name, GF_LOG_DEBUG, "leaving %s alone",
+ loc->path);
+ goto done;
+ }
+
count = cnt = dht_get_layout_count (this, layout, 0);
chunk = ((unsigned long) 0xffffffff) / ((cnt) ? cnt : 1);
@@ -700,7 +706,7 @@ done:
if (fix_array)
GF_FREE (fix_array);
- return new_layout;
+ return local->layout;
}