Re: [PATCH v5 0/7] fs: introduce fi le_getattr and file_setattr syscalls
"H. Peter Anvin" <[email protected]>
| Newsgroups | gmane.linux.ports.ppc64.devel,gmane.linux.ports.alpha,gmane.linux.kernel,gmane.linux.ports.arm.kernel,gmane.linux.ports.m68k,gmane.linux.ports.mips,gmane.linux.ports.parisc,gmane.linux.ports.sh.devel,gmane.linux.ports.sparc,gmane.linux.file-systems,gmane.linux.kernel.lsm,gmane.linux.kernel.api,gmane.linux.kernel.cross-arch,gmane.comp.file-systems.ecryptfs.general,gmane.linux.file-systems.union |
|---|---|
| Message-ID | <[email protected]> |
On May 13, 2025 2:53:23 AM PDT, Arnd Bergmann <[email protected]> wrote: >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 Well, ioctls carry the structure size in the ioctl number, so changing the structure size would change the ioctl number with it.