|
|
3604df |
From 91e0dfb0aec0a2812f3396fe796050f21ee7722a Mon Sep 17 00:00:00 2001
|
|
|
3604df |
From: Nithya Balachandran <nbalacha@dhcp35-62.lab.eng.blr.redhat.com>
|
|
|
3604df |
Date: Wed, 11 Jan 2017 16:03:08 +0530
|
|
|
3604df |
Subject: [PATCH 268/270] cluster/dht: Incorrect migration checks in fsync
|
|
|
3604df |
|
|
|
3604df |
Fixed the order of the migration phase checks
|
|
|
3604df |
in dht_fsync_cbk. Phase1 should never be hit if op_ret
|
|
|
3604df |
is non zero.
|
|
|
3604df |
|
|
|
3604df |
Upstream patches:
|
|
|
3604df |
master: http://review.gluster.org/16350
|
|
|
3604df |
release-3.8: http://review.gluster.org/#/c/16374/
|
|
|
3604df |
|
|
|
3604df |
Change-Id: Ie0179abcd70bd72cfc785fc87d9aef7293576f8d
|
|
|
3604df |
BUG: 1410406
|
|
|
3604df |
Signed-off-by: N Balachandran <nbalacha@redhat.com>
|
|
|
3604df |
Reviewed-on: https://code.engineering.redhat.com/gerrit/94726
|
|
|
3604df |
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
|
|
|
3604df |
---
|
|
|
3604df |
xlators/cluster/dht/src/dht-inode-read.c | 11 ++++++-----
|
|
|
3604df |
1 file changed, 6 insertions(+), 5 deletions(-)
|
|
|
3604df |
|
|
|
3604df |
diff --git a/xlators/cluster/dht/src/dht-inode-read.c b/xlators/cluster/dht/src/dht-inode-read.c
|
|
|
3604df |
index 549f1b9..8abf0d5 100644
|
|
|
3604df |
--- a/xlators/cluster/dht/src/dht-inode-read.c
|
|
|
3604df |
+++ b/xlators/cluster/dht/src/dht-inode-read.c
|
|
|
3604df |
@@ -839,6 +839,12 @@ dht_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int op_ret,
|
|
|
3604df |
dht_set_local_rebalance (this, local, NULL, prebuf,
|
|
|
3604df |
postbuf, xdata);
|
|
|
3604df |
|
|
|
3604df |
+ if ((op_ret == -1) || IS_DHT_MIGRATION_PHASE2 (postbuf)) {
|
|
|
3604df |
+ ret = dht_rebalance_complete_check (this, frame);
|
|
|
3604df |
+ if (!ret)
|
|
|
3604df |
+ return 0;
|
|
|
3604df |
+ }
|
|
|
3604df |
+
|
|
|
3604df |
/* Check if the rebalance phase1 is true */
|
|
|
3604df |
if (IS_DHT_MIGRATION_PHASE1 (postbuf)) {
|
|
|
3604df |
|
|
|
3604df |
@@ -860,11 +866,6 @@ dht_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int op_ret,
|
|
|
3604df |
}
|
|
|
3604df |
}
|
|
|
3604df |
|
|
|
3604df |
- if (IS_DHT_MIGRATION_PHASE2 (postbuf)) {
|
|
|
3604df |
- ret = dht_rebalance_complete_check (this, frame);
|
|
|
3604df |
- if (!ret)
|
|
|
3604df |
- return 0;
|
|
|
3604df |
- }
|
|
|
3604df |
|
|
|
3604df |
out:
|
|
|
3604df |
DHT_STRIP_PHASE1_FLAGS (postbuf);
|
|
|
3604df |
--
|
|
|
3604df |
2.9.3
|
|
|
3604df |
|