On Mon, Sep 18, 2023 at 04:14:02PM +0200, Miklos Szeredi wrote: > On Mon, Sep 18, 2023 at 3:51 PM Christian Brauner <brauner@xxxxxxxxxx> wrote: > > > I really would prefer a properly typed struct and that's what everyone > > was happy with in the session as well. So I would not like to change the > > main parameters. > > I completely agree. Just would like to understand this point: > > struct statmnt *statmnt(u64 mntid, u64 mask, unsigned int flags); > > What's not properly typed about this interface? > > I guess the answer is that it's not a syscall interface, which will > have an added [void *buf, size_t bufsize], while the buffer sizing is > done by a simple libc wrapper. > > Do you think that's a problem? If so, why? Sorry, I think we just talked passed each other. I didn't realize you were talking about a glibc wrapper. I'm not so much concerned with that they can expose this in whathever way they like. But we will have a lot of low-level userspace that will directly use statmount() or not even have glibc like go and other languages. The system call should please have a proper struct like you had in your first proposal. This is what I'm concerned about: int statmount(u64 mnt_id, struct statmnt __user *st, size_t size, unsigned int flags) instead of taking an void pointer.