diff options
Diffstat (limited to 'xlators')
-rw-r--r-- | xlators/cluster/unify/src/unify.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/xlators/cluster/unify/src/unify.c b/xlators/cluster/unify/src/unify.c index 5122a0061..6c3dc0bd2 100644 --- a/xlators/cluster/unify/src/unify.c +++ b/xlators/cluster/unify/src/unify.c @@ -522,6 +522,13 @@ unify_lookup_cbk (call_frame_t *frame, zr_unify_self_heal (frame, this, local); local_dict = NULL; } else { + if (local->failed) { + /* NOTE: directory lookup is sent to all + * subvolumes and success from a subvolume + * might set local->op_ret to 0 (zero) */ + local->op_ret = -1; + } + /* either no self heal, or op_ret == -1 (failure) */ tmp_inode = local->loc1.inode; unify_local_wipe (local); |