Hi David, I have a few generic remarks for new syscalls... > (3) New single-bit capability flags can be added. This is a structure-typed > attribute and, as such, (2) applies. Any bits you wanted but the kernel > doesn't support are automatically set to 0. > > fsinfo() may be called like the following, for example: > > struct fsinfo_params params = { > .at_flags = AT_SYMLINK_NOFOLLOW, Shouldn't all new syscalls be able to provide the RESOLVE_ Shouldn't all new syscalls be able to provide the RESOLVE_ flags supported in openat2? > .flags = FSINFO_FLAGS_QUERY_PATH, > .request = FSINFO_ATTR_AFS_SERVER_ADDRESSES, > .Nth = 2, > }; > struct fsinfo_server_address address; > len = fsinfo(AT_FDCWD, "/afs/grand.central.org/doc", ¶ms, > &address, sizeof(address)); Also passing sizeof(params) would allow future updates of fsinfo_params, also similar to openat2(), clone3()... > ======================== > FILESYSTEM NOTIFICATIONS > ======================== > > The second system call, watch_mount(), places a watch on a point in the > mount topology specified by the dirfd, path and at_flags parameters. All > mount topology change and mount attribute change notifications in the > subtree rooted at that point can be intercepted by the watch. Watches are > ducted through pipes: > > int fd[2]; > pipe2(fd, O_NOTIFICATION_PIPE); > ioctl(fd[0], IOC_WATCH_QUEUE_SET_SIZE, BUF_SIZE); > watch_mount(AT_FDCWD, "/", 0, fd[0], 0x02); I guess similar things apply here. Does that make sense to you? metze
Attachment:
signature.asc
Description: OpenPGP digital signature