diff options
Diffstat (limited to 'libglusterfs')
| -rw-r--r-- | libglusterfs/src/xlator.c | 17 | ||||
| -rw-r--r-- | libglusterfs/src/xlator.h | 1 | 
2 files changed, 18 insertions, 0 deletions
diff --git a/libglusterfs/src/xlator.c b/libglusterfs/src/xlator.c index 7f29d180a2d..50672423481 100644 --- a/libglusterfs/src/xlator.c +++ b/libglusterfs/src/xlator.c @@ -585,6 +585,23 @@ out:          return ret;  } +void +loc_gfid (loc_t *loc, uuid_t gfid) +{ +        if (!gfid) +                goto out; +        uuid_clear (gfid); + +        if (!loc) +                goto out; +        else if (!uuid_is_null (loc->gfid)) +                uuid_copy (gfid, loc->gfid); +        else if (loc->inode && (!uuid_is_null (loc->inode->gfid))) +                uuid_copy (gfid, loc->inode->gfid); +out: +        return; +} +  int  loc_copy (loc_t *dst, loc_t *src)  { diff --git a/libglusterfs/src/xlator.h b/libglusterfs/src/xlator.h index 1e21b63c55d..6271cf7fa59 100644 --- a/libglusterfs/src/xlator.h +++ b/libglusterfs/src/xlator.h @@ -873,6 +873,7 @@ int loc_copy (loc_t *dst, loc_t *src);  #define loc_dup(src, dst) loc_copy(dst, src)  void loc_wipe (loc_t *loc);  int loc_path (loc_t *loc, const char *bname); +void loc_gfid (loc_t *loc, uuid_t gfid);  int xlator_mem_acct_init (xlator_t *xl, int num_types);  int is_gf_log_command (xlator_t *trans, const char *name, char *value);  int glusterd_check_log_level (const char *value);  | 
