FUSE extended attribute patches available

Ken Merry ken at freebsd.org
Mon Feb 29 21:45:06 UTC 2016

I have patches for FreeBSD’s FUSE filesystem kernel module to support extended attributes:


The patch implements the get/set/delete/list extended attribute methods.  The listing code also converts extended attribute lists from the Linux/FUSE format to the FreeBSD format.  For example:

# touch foo
# ls -la foo
-rwxrwxrwx  1 root  wheel  0 Feb 29 21:40 foo
# lsextattr user foo
# setextattr user testattr1 "12345678" foo
# lsextattr user foo
foo     testattr1
# getextattr user testattr1 foo
foo     12345678
# setextattr user testattr2 "87654321" foo
# lsextattr user foo
foo     testattr2       testattr1
# rmextattr user testattr1 foo
# lsextattr user foo
foo     testattr2
# getextattr user testattr1 foo
getextattr: foo: failed: Attribute not found
# getextattr user testattr2 foo
foo     87654321

Just to be clear on what this does, it only provides extended attribute support to FreeBSD applications if the underlying FUSE filesystem implements FUSE extended attribute support.  Many FUSE filesystems don’t support the extended attribute VFS operations.

I have tested this out on IBM’s LTFS implementation, but I have not yet found another FUSE filesystem that supports extended attributes.  If anyone knows of one, please let me know so I can try it out.  (I looked through a number of the filesystems in sysutils/fusefs* in the ports tree.)

Any feedback is welcome.  I’m planning to check this into FreeBSD/head in the next week or so.

Obviously, I’ve also ported IBM’s LTFS implementation to FreeBSD.  It works in the standard FUSE mode, and you can also link it into an application as a library if you don’t want to incur the overhead of running through FUSE.  I haven’t gotten around to packaging it up to go out for testing / review.

If anyone has IBM LTO-5 or newer tape drives, or IBM TS1140 or newer tape drives, and wants to try it out, let me know.  I’ll send you the code when I’ve got it at least somewhat ready.  This is IBM-specific, and won’t work on HP tape drives.

Ken Merry
ken at FreeBSD.ORG

More information about the freebsd-fs mailing list