summaryrefslogtreecommitdiffstats
path: root/doc/legacy/solaris-related-xattrs.txt
diff options
context:
space:
mode:
authorVijay Bellur <vijay@gluster.com>2012-04-09 23:11:52 +0530
committerAnand Avati <avati@redhat.com>2012-04-11 10:25:56 -0700
commit076830c068fb39bbc3e863c89a4253cbea36357e (patch)
tree842884d8db9a40d5a53e5171c852a84daa8e0f65 /doc/legacy/solaris-related-xattrs.txt
parentdf8e2f53b70f4f49af70df308010dddfe5ca35ec (diff)
doc: Move outdated documentation to legacy
Change-Id: I0ceba9a993e8b1cdef4ff6a784bfd69c08107d88 BUG: 811311 Signed-off-by: Vijay Bellur <vijay@gluster.com> Reviewed-on: http://review.gluster.com/3116 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Amar Tumballi <amarts@redhat.com> Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'doc/legacy/solaris-related-xattrs.txt')
-rw-r--r--doc/legacy/solaris-related-xattrs.txt44
1 files changed, 44 insertions, 0 deletions
diff --git a/doc/legacy/solaris-related-xattrs.txt b/doc/legacy/solaris-related-xattrs.txt
new file mode 100644
index 00000000..3a464394
--- /dev/null
+++ b/doc/legacy/solaris-related-xattrs.txt
@@ -0,0 +1,44 @@
+ Solaris Extended Attributes
+
+In solaris extended attributes are logically supported as files
+within the filesystem. The file system is therefore augmented
+with an orthogonal namespace of file attributes. Attribute values
+are accessed by file descriptors obtained through a special attribute
+interface. This type of logical view of "attributes as files" allows
+the leveraging of existing file system interface functionality to
+support the construction, deletion and manipulation of attributes.
+
+But as we have tested through this functionality provided by Solaris
+we have come accross two major issues as written below.
+
+1. Symlink XATTR_NOFOLLOW not present for creating extended attributes
+ directly on the symlinks like other platforms Linux,MAC-OSX,BSD etc.
+ An implementation is present for O_NOFOLLOW for "openat()" call sets
+ up errno ELOOP whenever encountered with a symlink and also another
+ implementation AT_SYMLINK_NOFOLLOW which is not present for calls like
+ "attropen(), openat()"
+
+ a snippet of test code which helped us understand this behaviour
+ --------------------------------------
+ attrfd = attropen (path, key,
+ flags|AT_SYMLINK_NOFOLLOW|O_CREAT|O_WRONLY|O_NOFOLLOW, 0777);
+ if (attrfd >= 0) {
+ ftruncate (attrfd, 0);
+ ret = write (attrfd, value, size);
+ close (attrfd);
+ } else {
+ fprintf (stderr, "Couldn't set extended attribute for %s (%d)\n",
+ path, errno);
+ }
+ --------------------------------------
+
+2. Extended attribute support for special files like device files, fifo files
+ is not supported under solaris.
+
+Apart from these glitches almost everything regarding porting functionality
+for extended attribute calls has been properly implemented in compat.c
+with writing wrapper around functions over
+"attropen()", "openat()", "unlinkat()"
+
+
+