Re: [PATCH] get/set FAT filesystem attribute bits

From: H. Peter Anvin
Date: Mon Jan 03 2005 - 18:31:11 EST


[Pruning the Cc: list.]

Nicholas Miell wrote:
On Mon, 2005-01-03 at 14:25 -0800, H. Peter Anvin wrote:

I'm honestly not sure that using an ASCII string in an xattr is the sane way of doing this. Even a binary byte in an xattr would make more sense in some ways.

ASCII strings require no special tools to manipulate from shell scripts.


You need some kind of special tool anyway, i.e. getfattr/setfattr. What tool you use isn't really important.

The fact that getfattr/setfattr can't deal with attributes that aren't ASCII strings seem like flaws in these tools.


I think the xattr mechanism is ignored largely because it's painfully complex.

A plus with using xattr is that in theory (but of course not in practice!) it would let one store a copy of a DOS filesystem on an ext3 (or xfs, or...) filesystem and have it restored, all using standard (but by necessity, xattr-aware) tools. However, the splitting of xattr into namespaces may very well make that impossible, since what's a "system" attribute to one filesystem is a "user" attribute to another. Classic design flaw, by the way.

The design does allow users to store whatever they want as an xattr
without having to worry about how the kernel chooses to interpret it,
though. (i.e. the user namespace is just a byte array that the kernel
stores for you, while the system/security namespaces are probably
generated and interpreted on demand.)
>

Exactly, and that's a total screwup. It makes something that would otherwise be possible -- for some filesystems to have an attribute (call it "system.dosattrib") which is used, and for others which is stored. The problem is that with the current design, that won't happen.

Encoding this in the namespace, therefore preventing this kind of compatiblity, is daft. From the looks of it, the CIFS people were planning to do the "put everything in user.*" workaround for this design error.

-hpa
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/