We have decided to use extended attributes in OFS to enable communication between user and filesystem with standard linux tool. Today I came across the first disadvantage of this choice.
I was wondering why gedit claimed that it were not possible to save the backup file. After some debugging I discovered that it tried to copy all extended attributes from the original to the backup file.
In fact, this is a very good idea, especially when using ACLs (which are stored as extended attributes). In OFS we have a little problem with that. Think of setting the “ofs.available” flag to a random file inside the tree. This makes no sense is is denied by OFS. As a result, gedit failes in creating this file.
My fix for this was to hide the ofs.* attributes. This means I removed them from the listxattr FUSE callback, so that they are still available but get not exposed when someone asks for all available attributes.
I don’t know if using attributes which are not visible will raise new problems – time will show…