diff options
Diffstat (limited to 'xlators/features/marker/src/marker.c')
| -rw-r--r-- | xlators/features/marker/src/marker.c | 17 | 
1 files changed, 17 insertions, 0 deletions
diff --git a/xlators/features/marker/src/marker.c b/xlators/features/marker/src/marker.c index 291e24bdc..bbd448871 100644 --- a/xlators/features/marker/src/marker.c +++ b/xlators/features/marker/src/marker.c @@ -813,6 +813,9 @@ marker_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc)          if (ret == -1)                  goto err; +        if (uuid_is_null (loc->gfid) && loc->inode) +                uuid_copy (loc->gfid, loc->inode->gfid); +          STACK_WIND (frame, marker_unlink_stat_cbk, FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->stat, loc);          return 0; @@ -1104,6 +1107,7 @@ marker_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  if (newloc.name)                          newloc.name++;                  newloc.parent = inode_ref (local->loc.parent); +                uuid_copy (newloc.gfid, oplocal->loc.inode->gfid);                  STACK_WIND_COOKIE (frame, marker_rename_release_oldp_lock,                                     frame->cookie, FIRST_CHILD(this), @@ -1242,6 +1246,10 @@ marker_get_newpath_contribution (call_frame_t *frame, void *cookie,                   * reset them in the callback.                   */                  MARKER_SET_UID_GID (frame, local, frame->root); +                if (uuid_is_null (local->loc.gfid)) +                        uuid_copy (local->loc.gfid, local->loc.inode->gfid); + +                GF_UUID_ASSERT (local->loc.gfid);                  STACK_WIND_COOKIE (frame, marker_do_rename,                                     frame->cookie, FIRST_CHILD(this), @@ -1291,6 +1299,12 @@ marker_get_oldpath_contribution (call_frame_t *frame, void *cookie,           */          MARKER_SET_UID_GID (frame, local, frame->root); +        if (uuid_is_null (oplocal->loc.gfid)) +                        uuid_copy (oplocal->loc.gfid, +                                   oplocal->loc.inode->gfid); + +        GF_UUID_ASSERT (oplocal->loc.gfid); +          STACK_WIND_COOKIE (frame, marker_get_newpath_contribution,                             frame->cookie, FIRST_CHILD(this),                             FIRST_CHILD(this)->fops->getxattr, @@ -2137,6 +2151,9 @@ marker_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          frame->local = NULL; +        if (!op_ret && local && uuid_is_null (local->loc.gfid)) +                        uuid_copy (local->loc.gfid, inode->gfid); +          STACK_UNWIND_STRICT (lookup, frame, op_ret, op_errno, inode, buf,                               dict, postparent);  | 
