summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/cluster/dht/src/dht-common.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c
index ab64f6d2364..746dd1a8afe 100644
--- a/xlators/cluster/dht/src/dht-common.c
+++ b/xlators/cluster/dht/src/dht-common.c
@@ -208,9 +208,16 @@ dht_discover_complete (xlator_t *this, call_frame_t *discover_frame)
goto out;
}
if (ret != 0) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_WARNING,
"normalizing failed on %s "
"(overlaps/holes present)", local->loc.path);
+ /* We may need to do the lookup again */
+ /* in discover call, parent is not know, and basename
+ * of entry is also not available. Without which we
+ * cannot build a layout correctly to heal it. Hence
+ * returning ESTALE */
+ op_errno = ESTALE;
+ goto out;
}
if (local->inode)