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. */  | 
