Re: [RFC][PATCH 0/6] Enhanced file stat system call

From: Richard Sharpe
Date: Fri May 13 2016 - 10:28:37 EST


On Mon, May 9, 2016 at 6:09 AM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Thursday 05 May 2016 21:00:18 Steve French wrote:
>> On Thu, May 5, 2016 at 5:54 PM, Steve French <smfrench@xxxxxxxxx> wrote:
>> > On Wed, May 4, 2016 at 8:46 AM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
>> >> On Friday 29 April 2016 13:57:36 David Howells wrote:
>> >>> struct statx *buffer);
>> >>>
>> >>> This is an enhanced file stat function that provides a number of useful
>> >>> features, in summary:
>> >>>
>> >>> (1) More information: creation time, data version number, inode
>> >>> generation
>> >>> number and flags. A subset of these is available through a number of
>> >>> filesystems (such as CIFS, NFS, AFS, Ext4 and BTRFS).
>> >>>
>> >>
>> >> I have a question about birthtime/creationtime: As we are gaining a way
>> >> to read this, should we also provide a way to update it using a new
>> >> variant
>> >> of the utimensat syscall in order to have 'cp -a' create an identical
>> >> copy,
>> >> or is the idea that this is defined as the time that is particular copy
>> >> of the inode was created?
>> >>
>> >> I've discussed this with Deepa in the past, as she is driving the
>> >> convertion of the inode timestamps to timespec64 now, and we will
>> >> need a new version of utimensat for her work as well. I can see good
>> >> reasons either way (allowing updates of btime or disallowing them).
>> >
>> It would help interop with Windows (and presumably Mac) if birth time can be
>> updated
>
> Ok, thanks. That is certainly a good reason in favor.
>
> If nothing else comes up, I guess we can prepare a patch for a new
> utimensat variant to do this and wait for more comments on that.
>
> Arnd

Isn't there also a strong case for a setattr call that allows us to
atomically set a collection of attributes from userspace?

It would seem that network file systems (the clients) could use such features.

--
Regards,
Richard Sharpe
(ääèæïåææåã--ææ)