|
|
21ab4e |
From 0fa384d67b0866e10fc3f73a189f1409b9352425 Mon Sep 17 00:00:00 2001
|
|
|
21ab4e |
From: N Balachandran <nbalacha@redhat.com>
|
|
|
21ab4e |
Date: Tue, 25 Jul 2017 14:28:00 +0530
|
|
|
21ab4e |
Subject: [PATCH 573/576] cluster/dht: Update size processed for non-migrated
|
|
|
21ab4e |
files
|
|
|
21ab4e |
|
|
|
21ab4e |
The size of non-migrated files was not added to the
|
|
|
21ab4e |
size_processed causing incorrect rebalance estimate
|
|
|
21ab4e |
calculations. This has been fixed.
|
|
|
21ab4e |
|
|
|
21ab4e |
> BUG: 1467209
|
|
|
21ab4e |
> Signed-off-by: N Balachandran <nbalacha@redhat.com>
|
|
|
21ab4e |
> Reviewed-on: https://review.gluster.org/17867
|
|
|
21ab4e |
> Reviewed-by: Amar Tumballi <amarts@redhat.com>
|
|
|
21ab4e |
> Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
|
|
|
21ab4e |
|
|
|
21ab4e |
Change-Id: I9f338c44da22b856e9fdc6dc558f732ae9a22f15
|
|
|
21ab4e |
BUG: 1460936
|
|
|
21ab4e |
Signed-off-by: N Balachandran <nbalacha@redhat.com>
|
|
|
21ab4e |
Reviewed-on: https://code.engineering.redhat.com/gerrit/113512
|
|
|
21ab4e |
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
|
|
|
21ab4e |
---
|
|
|
21ab4e |
xlators/cluster/dht/src/dht-rebalance.c | 17 +++++++++++------
|
|
|
21ab4e |
1 file changed, 11 insertions(+), 6 deletions(-)
|
|
|
21ab4e |
|
|
|
21ab4e |
diff --git a/xlators/cluster/dht/src/dht-rebalance.c b/xlators/cluster/dht/src/dht-rebalance.c
|
|
|
21ab4e |
index 9ae4062..39005f0 100644
|
|
|
21ab4e |
--- a/xlators/cluster/dht/src/dht-rebalance.c
|
|
|
21ab4e |
+++ b/xlators/cluster/dht/src/dht-rebalance.c
|
|
|
21ab4e |
@@ -2587,6 +2587,7 @@ gf_defrag_migrate_single_file (void *opaque)
|
|
|
21ab4e |
int fop_errno = 0;
|
|
|
21ab4e |
gf_dht_migrate_data_type_t rebal_type = GF_DHT_MIGRATE_DATA;
|
|
|
21ab4e |
char value[MAX_REBAL_TYPE_SIZE] = {0,};
|
|
|
21ab4e |
+ struct iatt *iatt_ptr = NULL;
|
|
|
21ab4e |
|
|
|
21ab4e |
rebal_entry = (struct dht_container *)opaque;
|
|
|
21ab4e |
if (!rebal_entry) {
|
|
|
21ab4e |
@@ -2606,6 +2607,7 @@ gf_defrag_migrate_single_file (void *opaque)
|
|
|
21ab4e |
migrate_data = rebal_entry->migrate_data;
|
|
|
21ab4e |
|
|
|
21ab4e |
entry = rebal_entry->df_entry;
|
|
|
21ab4e |
+ iatt_ptr = &entry->d_stat;
|
|
|
21ab4e |
|
|
|
21ab4e |
if (defrag->defrag_status != GF_DEFRAG_STATUS_STARTED) {
|
|
|
21ab4e |
ret = -1;
|
|
|
21ab4e |
@@ -2661,6 +2663,8 @@ gf_defrag_migrate_single_file (void *opaque)
|
|
|
21ab4e |
goto out;
|
|
|
21ab4e |
}
|
|
|
21ab4e |
|
|
|
21ab4e |
+ iatt_ptr = &iat;;
|
|
|
21ab4e |
+
|
|
|
21ab4e |
hashed_subvol = dht_subvol_get_hashed (this, &entry_loc);
|
|
|
21ab4e |
if (!hashed_subvol) {
|
|
|
21ab4e |
gf_msg (this->name, GF_LOG_ERROR, 0,
|
|
|
21ab4e |
@@ -2726,7 +2730,6 @@ gf_defrag_migrate_single_file (void *opaque)
|
|
|
21ab4e |
LOCK (&defrag->lock);
|
|
|
21ab4e |
{
|
|
|
21ab4e |
defrag->skipped += 1;
|
|
|
21ab4e |
- defrag->size_processed += iatt.ia_size;
|
|
|
21ab4e |
}
|
|
|
21ab4e |
UNLOCK (&defrag->lock);
|
|
|
21ab4e |
} else if (fop_errno == ENOTSUP) {
|
|
|
21ab4e |
@@ -2735,7 +2738,6 @@ gf_defrag_migrate_single_file (void *opaque)
|
|
|
21ab4e |
LOCK (&defrag->lock);
|
|
|
21ab4e |
{
|
|
|
21ab4e |
defrag->skipped += 1;
|
|
|
21ab4e |
- defrag->size_processed += iatt.ia_size;
|
|
|
21ab4e |
}
|
|
|
21ab4e |
UNLOCK (&defrag->lock);
|
|
|
21ab4e |
} else if (fop_errno != EEXIST) {
|
|
|
21ab4e |
@@ -2746,7 +2748,6 @@ gf_defrag_migrate_single_file (void *opaque)
|
|
|
21ab4e |
LOCK (&defrag->lock);
|
|
|
21ab4e |
{
|
|
|
21ab4e |
defrag->total_failures += 1;
|
|
|
21ab4e |
- defrag->size_processed += iatt.ia_size;
|
|
|
21ab4e |
}
|
|
|
21ab4e |
UNLOCK (&defrag->lock);
|
|
|
21ab4e |
|
|
|
21ab4e |
@@ -2771,7 +2772,6 @@ gf_defrag_migrate_single_file (void *opaque)
|
|
|
21ab4e |
{
|
|
|
21ab4e |
defrag->total_files += 1;
|
|
|
21ab4e |
defrag->total_data += iatt.ia_size;
|
|
|
21ab4e |
- defrag->size_processed += iatt.ia_size;
|
|
|
21ab4e |
}
|
|
|
21ab4e |
UNLOCK (&defrag->lock);
|
|
|
21ab4e |
|
|
|
21ab4e |
@@ -2790,6 +2790,13 @@ out:
|
|
|
21ab4e |
STACK_DESTROY (statfs_frame->root);
|
|
|
21ab4e |
}
|
|
|
21ab4e |
|
|
|
21ab4e |
+ if (iatt_ptr) {
|
|
|
21ab4e |
+ LOCK (&defrag->lock);
|
|
|
21ab4e |
+ {
|
|
|
21ab4e |
+ defrag->size_processed += iatt_ptr->ia_size;
|
|
|
21ab4e |
+ }
|
|
|
21ab4e |
+ UNLOCK (&defrag->lock);
|
|
|
21ab4e |
+ }
|
|
|
21ab4e |
loc_wipe (&entry_loc);
|
|
|
21ab4e |
|
|
|
21ab4e |
return ret;
|
|
|
21ab4e |
@@ -5035,8 +5042,6 @@ log:
|
|
|
21ab4e |
"Files migrated: %"PRIu64", size: %"
|
|
|
21ab4e |
PRIu64", lookups: %"PRIu64", failures: %"PRIu64", skipped: "
|
|
|
21ab4e |
"%"PRIu64, files, size, lookup, failures, skipped);
|
|
|
21ab4e |
-
|
|
|
21ab4e |
-
|
|
|
21ab4e |
out:
|
|
|
21ab4e |
return 0;
|
|
|
21ab4e |
}
|
|
|
21ab4e |
--
|
|
|
21ab4e |
1.8.3.1
|
|
|
21ab4e |
|