From e066a5fea7bdaa5da78e49c9a5bf344af2f33d3c Mon Sep 17 00:00:00 2001 From: Jeff Darcy Date: Fri, 23 Mar 2012 13:16:06 -0400 Subject: 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 Reviewed-on: http://review.gluster.com/3004 Tested-by: Gluster Build System Reviewed-by: Anand Avati --- xlators/cluster/dht/src/dht-selfheal.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'xlators/cluster/dht/src/dht-selfheal.c') diff --git a/xlators/cluster/dht/src/dht-selfheal.c b/xlators/cluster/dht/src/dht-selfheal.c index 68d9416fabf..7ceb80157d5 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; } -- cgit