summaryrefslogtreecommitdiffstats
path: root/api/src/glfs-fops.c
diff options
context:
space:
mode:
authorAnand Avati <avati@redhat.com>2013-08-09 11:12:29 -0700
committerVijay Bellur <vbellur@redhat.com>2013-08-13 08:59:52 -0700
commita78f7dcddbc3d2048a184b7f4f45a63586eb5580 (patch)
tree17197bb6793c27190f19ec9542b46de12db26f22 /api/src/glfs-fops.c
parent528cbf0ef1b8cbabbab5141df69353d7cf9f59f5 (diff)
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/src/glfs-fops.c')
-rw-r--r--api/src/glfs-fops.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/api/src/glfs-fops.c b/api/src/glfs-fops.c
index 605913ae5..8ee9a2077 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) {