Thread (23 messages) 23 messages, 8 authors, 2025-05-22

Re: [PATCH v5 0/7] fs: introduce file_getattr and file_setattr syscalls

From: "H. Peter Anvin" <hpa@zytor.com>
Date: 2025-05-14 15:19:21
Also in: linux-alpha, linux-arch, linux-fsdevel, linux-m68k, linux-mips, linux-s390, linux-security-module, linux-sh, linux-unionfs, linux-xfs, linuxppc-dev, lkml, selinux, sparclinux

On May 13, 2025 2:53:23 AM PDT, Arnd Bergmann [off-list ref] wrote:
On Tue, May 13, 2025, at 11:17, Andrey Albershteyn wrote:
quoted
	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.

quoted
		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
Well, ioctls carry the structure size in the ioctl number, so changing the structure size would change the ioctl number with it.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help