diff options
author | Anand Avati <avati@redhat.com> | 2013-08-09 11:12:29 -0700 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2013-08-13 08:59:52 -0700 |
commit | a78f7dcddbc3d2048a184b7f4f45a63586eb5580 (patch) | |
tree | 17197bb6793c27190f19ec9542b46de12db26f22 /api | |
parent | 528cbf0ef1b8cbabbab5141df69353d7cf9f59f5 (diff) | |
download | glusterfs-a78f7dcddbc3d2048a184b7f4f45a63586eb5580.tar.gz glusterfs-a78f7dcddbc3d2048a184b7f4f45a63586eb5580.tar.xz glusterfs-a78f7dcddbc3d2048a184b7f4f45a63586eb5580.zip |
libgfapi : Fix for hardlink creation on SMB mount
Previously the inode of the hard link was left uninitialised hence
glfs_loc_link() used to fail with invalid parameter.Since inode is
same for both the files in hard link creation, updated the inode
field of hard link to be same as that of the original file.
Original-author: susant palai <spalai@redhat.com>
Change-Id: Ifd6439867d982524a7b48bf3f6add6e844b3c4c1
BUG: 996063
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/5576
Tested-by: susant palai <spalai@redhat.com>
Reviewed-by: Raghavendra Talur <rtalur@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'api')
-rw-r--r-- | api/src/glfs-fops.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/api/src/glfs-fops.c b/api/src/glfs-fops.c index 605913ae51..8ee9a20772 100644 --- a/api/src/glfs-fops.c +++ b/api/src/glfs-fops.c @@ -1617,6 +1617,15 @@ retrynew: goto out; } + /* Filling the inode of the hard link to be same as that of the + original file + */ + if (newloc.inode) { + inode_unref (newloc.inode); + newloc.inode = NULL; + } + newloc.inode = inode_ref (oldloc.inode); + ret = syncop_link (subvol, &oldloc, &newloc); if (ret == -1 && errno == ESTALE) { |