diff options
-rw-r--r-- | xlators/cluster/afr/src/afr-self-heal-data.c | 4 | ||||
-rw-r--r-- | xlators/cluster/afr/src/afr-self-heal-entry.c | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/xlators/cluster/afr/src/afr-self-heal-data.c b/xlators/cluster/afr/src/afr-self-heal-data.c index 32fcd1a2f2b..36d658fa454 100644 --- a/xlators/cluster/afr/src/afr-self-heal-data.c +++ b/xlators/cluster/afr/src/afr-self-heal-data.c @@ -364,6 +364,10 @@ afr_selfheal_data_do (call_frame_t *frame, xlator_t *this, fd_t *fd, goto out; AFR_STACK_RESET (iter_frame); + if (iter_frame->local == NULL) { + ret = -ENOTCONN; + goto out; + } } afr_selfheal_data_restore_time (frame, this, fd->inode, source, diff --git a/xlators/cluster/afr/src/afr-self-heal-entry.c b/xlators/cluster/afr/src/afr-self-heal-entry.c index f3ddc0149da..434b0481f0d 100644 --- a/xlators/cluster/afr/src/afr-self-heal-entry.c +++ b/xlators/cluster/afr/src/afr-self-heal-entry.c @@ -545,6 +545,10 @@ afr_selfheal_entry_do_subvol (call_frame_t *frame, xlator_t *this, ret = afr_selfheal_entry_dirent (iter_frame, this, fd, entry->d_name); AFR_STACK_RESET (iter_frame); + if (iter_frame->local == NULL) { + ret = -ENOTCONN; + break; + } if (ret == -1) { /* gfid or type mismatch. */ |