diff options
author | Peter Seebach <peter.seebach@windriver.com> | 2014-04-16 13:57:50 -0500 |
---|---|---|
committer | Peter Seebach <peter.seebach@windriver.com> | 2014-04-21 18:12:22 -0500 |
commit | d4c7177bb87aad975852715c6956426b5595bb78 (patch) | |
tree | 53c8520e9510f9118a4d855c274cf5a679f25e99 /enums | |
parent | f1d474452e24e185c4f657bba700ac6509cbd0cd (diff) | |
download | pseudo-d4c7177bb87aad975852715c6956426b5595bb78.tar.gz pseudo-d4c7177bb87aad975852715c6956426b5595bb78.tar.bz2 pseudo-d4c7177bb87aad975852715c6956426b5595bb78.zip |
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')
-rw-r--r-- | enums/debug_type.in | 1 | ||||
-rw-r--r-- | enums/op.in | 6 |
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 |