summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src/syscall.c
diff options
context:
space:
mode:
authorshishir gowda <shishirng@gluster.com>2011-03-04 02:22:37 +0000
committerAnand V. Avati <avati@dev.gluster.com>2011-03-04 00:41:15 -0800
commit5b909c83de45e9457eef773cb24770b47d51a632 (patch)
tree4de0148ce00c572308b96c43e4f95ae49b88c2fa /libglusterfs/src/syscall.c
parent0066a093a258bfd1a9130134318c3df3571a091d (diff)
Solaris xattr support for symlink and special files.
Since glusterfs uses xattr for storing gfid, and xattr support for symlinks and special files does not exist in solaris. The work around is provided by creating hidden files under export directory on solaris hosts only. the hidden files ares maintained in .glusterfs_xattr_inode directory, and all xattr ops on symlink and special files are redirected to respective inodes. All dir entries with name starting as .glusterfs (GF_HIDDEN_PATH) will not be shown in readdir ops. Signed-off-by: shishir gowda <shishirng@gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 2213 (Symlink fails with ENODATA) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2213
Diffstat (limited to 'libglusterfs/src/syscall.c')
-rw-r--r--libglusterfs/src/syscall.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libglusterfs/src/syscall.c b/libglusterfs/src/syscall.c
index c0855f1d1..6750b313d 100644
--- a/libglusterfs/src/syscall.c
+++ b/libglusterfs/src/syscall.c
@@ -95,6 +95,9 @@ sys_mkdir (const char *pathname, mode_t mode)
int
sys_unlink (const char *pathname)
{
+#ifdef GF_SOLARIS_HOST_OS
+ return solaris_unlink (pathname);
+#endif
return unlink (pathname);
}
@@ -116,6 +119,9 @@ sys_symlink (const char *oldpath, const char *newpath)
int
sys_rename (const char *oldpath, const char *newpath)
{
+#ifdef GF_SOLARIS_HOST_OS
+ return solaris_rename (oldpath, newpath);
+#endif
return rename (oldpath, newpath);
}