Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Aug 2015 14:22:25 -0700
From:      Kirk McKusick <mckusick@mckusick.com>
To:        Julian Elischer <julian@freebsd.org>
Cc:        "freebsd-fs@freebsd.org" <freebsd-fs@freebsd.org>, "'Jilles Tjoelker'" <jilles@stack.nl>, John Baldwin <jhb@freebsd.org>
Subject:   Re: futimens and utimensat vs birthtime
Message-ID:  <201508142122.t7ELMPjR002452@chez.mckusick.com>
In-Reply-To: <2405496.WdPSxGzEuT@ralph.baldwin.cx>

next in thread | previous in thread | raw e-mail | index | archive | help
> From: John Baldwin <jhb@freebsd.org>
> To: freebsd-current@freebsd.org
> Subject: Re: futimens and utimensat vs birthtime
> Date: Fri, 14 Aug 2015 10:39:41 -0700
> Cc: "freebsd-fs@freebsd.org" <freebsd-fs@freebsd.org>,
>         "'Jilles Tjoelker'" <jilles@stack.nl>
> 
> On Friday, August 14, 2015 10:46:10 PM Julian Elischer wrote:
>> I would like to implement this call. but would like input as to it's 
>> nature.
>> The code inside the system would already appear to support handling 
>> three elements, though it needs some scrutiny,
>> so all that is needed is a system call with the ability to set the 
>> birthtime directly.
>> 
>> Whether it should take the form of the existing calls but expecting 
>> three items is up for discussion.
>> Maybe teh addition of a flags argument to specify which items are 
>> present and which to set.
>> 
>> ideas?
> 
> I believe these should be new calls.  Only utimensat() provides a flag
> argument, but it is reserved for AT_* flags.  I would be fine with
> something like futimens3() and utimensat3() (where 3 means "three
> timespecs").  Jilles implemented futimens() and utimensat(), so he
> might have ideas as well.  I would probably stick the birth time in
> the third (final) timespec slot to make it easier to update new code
> (you can use an #ifdef just around ts[2] without having to #ifdef the
> entire block).
> 
> -- 
> John Baldwin

I concur with John's suggestion. Add a new system call with three
argument set of times specifying birthtime as the last one. I
proposed doing this when I added birthtime, but did not as the
sentiment at the time was that it would gratuitously make FreeBSD
written applications less portable if they used this new non-standard
system call.

	Kirk McKusick



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201508142122.t7ELMPjR002452>