diff options
author | Pranith Kumar K <pranithk@gluster.com> | 2012-02-28 09:27:32 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2012-02-29 02:47:19 -0800 |
commit | 72eda6a45b52e98458e4efa3e9819a8a3a25faef (patch) | |
tree | 81fbfb3518d84286ed9c4e46d05b922501ae9372 /libglusterfs | |
parent | 15141a7660b1e4430513c8a96a498da652023894 (diff) |
libglusterfs: Handle loc_copy for nameless loc
BUG: 787671
Change-Id: I7601f482ae753ead83be16d1df33c2187e76dc5c
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.com/2825
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Diffstat (limited to 'libglusterfs')
-rw-r--r-- | libglusterfs/src/xlator.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/libglusterfs/src/xlator.c b/libglusterfs/src/xlator.c index ec20029591e..bbd6df683a2 100644 --- a/libglusterfs/src/xlator.c +++ b/libglusterfs/src/xlator.c @@ -570,25 +570,21 @@ loc_copy (loc_t *dst, loc_t *src) if (src->parent) dst->parent = inode_ref (src->parent); - if (src->path) + if (src->path) { dst->path = gf_strdup (src->path); - if (!dst->path) - goto out; + if (!dst->path) + goto out; - dst->name = strrchr (dst->path, '/'); - if (dst->name) - dst->name++; + dst->name = strrchr (dst->path, '/'); + if (dst->name) + dst->name++; + } ret = 0; out: - if (ret == -1) { - if (dst->inode) - inode_unref (dst->inode); - - if (dst->parent) - inode_unref (dst->parent); - } + if (ret == -1) + loc_wipe (dst); err: return ret; |