Hi David, On Wed, Feb 19, 2020 at 3:36 PM David Howells <dhowells@xxxxxxxxxx> wrote: > Add system calls to create and remove mountpoints(). These are modelled > after mkdir and rmdir inside the VFS. Currently they use the same security > hooks which probably needs fixing. > > The calls look like: > > long create_mountpoint(int dfd, const char *path, > const char *fstype, const char *source, > const char *params); > long remove_mountpoint(int dfd, const char *path); > > Creation takes an fstype, source and params which the filesystem that owns > the mountpoint gets to filter/interpret. It is free to reject any > combination of fstype, source and params it cannot store. source and > params are both optional. > > Removal could probably be left to rmdir(), but this gives the option of > applying tighter security checks and also allows me to prevent rmdir from > removing them by accident. > > The AFS filesystem is then altered to use these system calls to create and > remove persistent mountpoints in an AFS volume. create_automount() is > something that AFS needs, but cannot be implemented with, say, symlink(). > These substitute for the lack of pioctl() on Linux, supplying the > functionality of VIOC_AFS_CREATE_MT_PT and VIOC_AFS_DELETE_MT_PT. > > Also make them usable with tmpfs for testing. I'm not sure if this is > useful in practice, but I've made tmpfs store the three parameters and just > pass them to mount when triggered. Note that it doesn't look up the target > filesystem until triggered so as not to load lots of modules until > necessary. > > I suspect they're of little of use to NFS, CIFS and autofs, but probably > Coda and maybe Btrfs can make use of them. > > Signed-off-by: David Howells <dhowells@xxxxxxxxxx> Thanks for your patch! The above nicely explains what the patch does. However, unless I'm missing something, this fails to explain the "why" (except for the vague "[...] is something that AFS needs ...". Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds