I implemented extended attributes in my Linux 9P server:
term% echo Xuser.wow abcd >,ctl/foo
term% cat ,ctl/foo
dev 45831
inode 265868
umode 0100644
nlink 1
uid 1001
gid 1001
rdev 0
size 6
blksize 4096
blocks 16
atime 1739199962
mtime 1739199962
ctime 1740003632
atimensec 460383798
mtimensec 470383712
ctimensec 621853327
name foo
Xuser.wow abcd
term%
Apparently on Linux your attribute names have to start with "user."
I think this is the first time I've ever created an extended attribute on Linux.
And I did it from Plan 9 over 9P!

Xuser.wow abcd
makes an attribute with a UTF-8 value
Yuser.wow2 12 3a 08 b5
(hex-encoding) makes an attribute with a binary value
Xuser.wow
deletes the attribute
Yuser.wow2
makes an empty (0-length) attribute

My server presents attributes as UTF-8 if the value is valid UTF-8 with no 
frogs,
and presents as hex-encoded binary if not.

And from Linux via my adapter:
lyssa@pibysix:~/mnt/mnt/home/lyssa/t $ xattr -l foo
user.wow: abcd
lyssa@pibysix:~/mnt/mnt/home/lyssa/t $

All I have to do now is find a use for them. ;)

The Linux xattr program that comes with the extended attributes package seems 
strangely slow.
There's a half-second pause before it does what should be a trivial operation.
When I did an strace to find out what system call it makes to delete an 
attribute, I found out why:
7275 system calls.
2384 of them contain the string "python".
------------------------------------------
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/T0f2c2342a05a3d6e-M7168e49cb8a5cb39723b399b
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription

Reply via email to