[PATCH 02/18] xstat: Add a pair of system calls to make extended file stats available [ver #6]

Neil Brown 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.

NeilBrown


More information about the samba-technical mailing list