Re: Add fchmodat2() - or add a more general syscall?

David Howells
2023-07-25T18:41:05Z

Florian Weimer <fweimer@redhat.com> wrote:

> > Rather than adding a fchmodat2() syscall, should we add a
> > "set_file_attrs()" syscall that takes a mask and allows you to set a bunch
> > of stuff all in one go? Basically, an interface to notify_change() in the
> > kernel that would allow several stats to be set atomically. This might be
> > of particular interest to network filesystems.
>
> Do you mean atomically as in compare-and-swap (update only if old values
> match), or just a way to update multiple file attributes with a single
> system call?

I was thinking more in terms of the latter. AFAIK, there aren't any network
filesystems support a CAS interface on file attributes like that. To be able
to do a CAS operation, we'd need to pass in the old values as well as the new.

Another thing we could look at is doing "create_and_set_attrs()", possibly
allowing it to take a list of xattrs also.

David