[PATCH 02/18] xstat: Add a pair of system calls to make extended file stats available [ver #6]
neilb at suse.de
Sat Aug 7 05:04:22 MDT 2010
On Sat, 7 Aug 2010 06:34:00 -0400
Jeff Layton <jlayton at samba.org> wrote:
> On Sat, 7 Aug 2010 13:32:40 +1000
> Neil Brown <neilb at suse.de> wrote:
> > So we are left with an attribute that is needed for windows compatibility,
> > and so just needs to be understood by samba and wine. Some filesystems might
> > support it efficiently, others might require the use of generic
> > extended-attributes, still others might not support it at all (I guess you
> > store it in some 'tdb' and hope it works well enough).
> > Core-linux doesn't really need to know about this - there just needs to be a
> > channel to pass it between samba/wine and the filesystem. xattr still seems
> > the best mechanism to pass this stuff around. Team-samba can negotiate with
> > fs developers to optimise/accelerate certain attributes, and linux-VFS
> > doesn't need to know or care (except maybe to provide generic non-blocking or
> > multiple-access interfaces).
> IIUC, you're saying that we should basically just have samba stuff the
> current time into an xattr when it creates the file and leave the
> filesystems alone. If so, I disagree here.
I'm not quite saying that (though there is a temptation). Some attributes
are initialised by the filesystem rather than by common code. i_uid is a
simple example. I have no problem with the filesystem initialising the
storage that is used for this well-known-EA to the current time at creation.
This would be part of what team-samba negotiated with FS developers.
> The problem with treating this as *just* an xattr is that it doesn't
> account for files that are created outside of samba but are then shared
> out by it.
If something is created in a different universe, then brought into this one -
when is its date of birth? The moment of creation, or the moment of entry
into this universe? If both universes have a common time line (altough
with a 10 year offset) then I guess the former, though I think it is a bit of
a philosophical point.... :-)
> To handle this correctly, I believe it needs to be initialized by the
> kernel to the current time whenever an inode is created, even if samba
> doesn't create it. After that, it can be treated as just another xattr.
Yes, I suspect that would be ideal, and trivial for the fs to implement (it
has to initialise it to something after all).
i.e. I agree.
More information about the samba-technical