From 5b909c83de45e9457eef773cb24770b47d51a632 Mon Sep 17 00:00:00 2001 From: shishir gowda Date: Fri, 4 Mar 2011 02:22:37 +0000 Subject: 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 Signed-off-by: Anand V. Avati BUG: 2213 (Symlink fails with ENODATA) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2213 --- libglusterfs/src/syscall.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'libglusterfs/src/syscall.c') diff --git a/libglusterfs/src/syscall.c b/libglusterfs/src/syscall.c index c0855f1d157..6750b313da7 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); } -- cgit