path: root/enums
diff options
authorPeter Seebach <peter.seebach@windriver.com>2014-04-16 13:57:50 -0500
committerPeter Seebach <peter.seebach@windriver.com>2014-04-21 18:12:22 -0500
commitd4c7177bb87aad975852715c6956426b5595bb78 (patch)
tree53c8520e9510f9118a4d855c274cf5a679f25e99 /enums
parentf1d474452e24e185c4f657bba700ac6509cbd0cd (diff)
Initial draft xattr support
Initial, incomplete, support for extended attributes. Extended attributes are implemented fairly naively, using a second table in the file database using the primary file table's id as a foreign key. The ON DELETE CASCADE behavior requires sqlite 3.6.19 or later with foreign key and trigger support compiled in. To reduce round-trips, the client does not check for existing attributes, but rather, sends three distinct set messages; OP_SET_XATTR, OP_CREATE_XATTR, OP_REPLACE_XATTR. A SET message always succeeds, a CREATE fails if the attribute already exists, and a REPLACE fails if the attribute does not already exist. The /* flags */ feature of makewrappers is used to correct path names appropriately, so all functions are already working with complete paths, and can always use functions that work on links; if they were supposed to dereference, the path fixup code got that. The xattr support is enabled, for now, conditional on whether getfattr --help succeeds. Not yet implemented: Translation for system.posix_acl_access, which is used by "cp -a" (or "cp --preserve-all") on some systems to try to copy modes. Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Diffstat (limited to 'enums')
2 files changed, 7 insertions, 0 deletions
diff --git a/enums/debug_type.in b/enums/debug_type.in
index 4e3126e..f4de3ab 100644
--- a/enums/debug_type.in
+++ b/enums/debug_type.in
@@ -25,3 +25,4 @@ ipc, 'i', "client/server interactions"
invoke, 'k', "invocation and launching"
benchmark, 'b', "performance statistics"
verbose, 'V', "extra detail"
+xattr, 'x', "extended attributes"
diff --git a/enums/op.in b/enums/op.in
index 3b8e23e..61ee666 100644
--- a/enums/op.in
+++ b/enums/op.in
@@ -21,3 +21,9 @@ exec, 0
may-unlink, 1
did-unlink, 0
cancel-unlink, 0
+get-xattr, 1
+list-xattr, 1
+remove-xattr, 1
+set-xattr, 0
+create-xattr, 1
+replace-xattr, 1