[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha8-970-gd6270df

Jeremy Allison jra at samba.org
Thu Aug 13 13:12:39 MDT 2009


On Thu, Aug 13, 2009 at 10:53:36AM +0200, Stefan (metze) Metzmacher wrote:

> Can we please use an idl based union to store this information?

Actually I'd rather not. I'm getting concerned about EA space,
normally we only have 64k available, and we're now using EA
space for the security descriptors, which can potentially
be quite large. What advantage do you see to doing it this
way over individual EA's storing specific metadata ?

> Also user.DosTimestamps is misleading when it only stores the create time.

I deliberately called it Timestamp(s) as I'm thinking about
change time also. It doesn't need to be a union as it's easy
to find the size of an EA on read. If we assume the Windows
timestamps are always in the following order:

Create
Access
Write
Change 

(which they are on the wire), then you can tell which
timestamps are in the store by the multiple of 8 bytes
that is used. It's also backwards compatible as the
getea call only gets the number of bytes requested.

Having said that I don't think we should be storing
more than the create time stamp. The semantics of the
Windows Change and Write timestamps are such that we'd
have to take complete management of updating these
on every file operation and completely ignore the
POSIX fields in the stat struct, which I really don't want to
have to do.

Let's wait until we get the final document explaining
the neccessary timestamp semantics before deciding
what we should do here.

> It would be nice if we could use a single EA to store all timestamps
> and maybe all other info like the current xattr_DosAttrib struct used by
> samba4.

IMHO storing all timestamps is a bad idea, as above.
I also don't see where xattr_DosAttrib is used in the
current code.

Jeremy.


More information about the samba-technical mailing list