[PATCH v5 0/7] fs: introduce file_getattr and file_setattr syscalls
Arnd Bergmann
arnd at arndb.de
Tue May 13 19:53:23 AEST 2025
On Tue, May 13, 2025, at 11:17, Andrey Albershteyn wrote:
>
> long syscall(SYS_file_getattr, int dirfd, const char *pathname,
> struct fsxattr *fsx, size_t size, unsigned int at_flags);
> long syscall(SYS_file_setattr, int dirfd, const char *pathname,
> struct fsxattr *fsx, size_t size, unsigned int at_flags);
I don't think we can have both the "struct fsxattr" from the uapi
headers, and a variable size as an additional argument. I would
still prefer not having the extensible structure at all and just
use fsxattr, but if you want to make it extensible in this way,
it should use a different structure (name). Otherwise adding
fields after fsx_pad[] would break the ioctl interface.
I also find the bit confusing where the argument contains both
"ignored but assumed zero" flags, and "required to be zero"
flags depending on whether it's in the fsx_pad[] field or
after it. This would be fine if it was better documented.
> fsx.fsx_xflags |= FS_XFLAG_NODUMP;
> error = syscall(468, dfd, "./foo", &fsx, 0);
The example still uses the calling conventions from a previous
version.
Arnd
More information about the Linuxppc-dev
mailing list