summaryrefslogtreecommitdiffstats
path: root/xlators/cluster
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/cluster')
-rw-r--r--xlators/cluster/dht/src/dht-common.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c
index 72ec641cce1..6360344992c 100644
--- a/xlators/cluster/dht/src/dht-common.c
+++ b/xlators/cluster/dht/src/dht-common.c
@@ -4594,12 +4594,14 @@ dht_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
LOCK (&frame->lock);
{
if (op_ret == -1) {
- local->op_errno = op_errno;
- local->op_ret = -1;
+ if ((op_errno != ENOENT) && (op_errno != ESTALE)) {
+ local->op_errno = op_errno;
+ local->op_ret = -1;
- if (op_errno != ENOENT && op_errno != EACCES) {
- local->need_selfheal = 1;
+ if (op_errno != EACCES)
+ local->need_selfheal = 1;
}
+
uuid_unparse(local->loc.gfid, gfid);
gf_msg_debug (this->name, 0,
@@ -5104,7 +5106,7 @@ dht_rmdir_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
"gfid = %s, (%s)",
prev->this->name, local->loc.path, gfid,
strerror (op_errno));
- if (op_errno != ENOENT) {
+ if ((op_errno != ENOENT) && (op_errno != ESTALE)) {
local->op_ret = -1;
local->op_errno = op_errno;
}