Re: [PATCH 30/38] vfs: syscall: Add fsmount() to create a mount for a superblock [ver #10]

Andy Lutomirski
2018-07-27T19:44:17Z

On Fri, Jul 27, 2018 at 12:27 PM, Andy Lutomirski <luto@amacapital.net> wrote:
>
>
>> On Jul 27, 2018, at 10:34 AM, David Howells <dhowells@redhat.com> wrote:
>>
>> Provide a system call by which a filesystem opened with fsopen() and
>> configured by a series of writes can be mounted:
>>
>> int ret = fsmount(int fsfd, unsigned int flags,
>> unsigned int ms_flags);
>>
>> where fsfd is the file descriptor returned by fsopen(). flags can be 0 or
>> FSMOUNT_CLOEXEC. ms_flags is a bitwise-OR of the following flags:
>
> I have a potentially silly objection. For the old timers, “mount” means to stick a reel of tape or some similar object onto a reader, which seems to imply that “mount” means to start up the filesystem. For younguns, this meaning is probably lost, and the more obvious meaning is to “mount” it into some location in the VFS hierarchy a la vfsmount. The patch description doesn’t disambiguate it, and obviously people used to mount(2)/mount(8) are just likely to be confused.
>
> At the very least, your description should make it absolutely clear what you mean. Even better IMO would be to drop the use of the word “mount” entirely and maybe rename the syscall.
>
> From a very brief reading, I think you are giving it the meaning that would be implied by fsstart(2).
>

After further reading, maybe what you actually mean is:

int mfd = fsmount(...);

where you pass in an fscontext fd and get out an fd referring to the
root of the filesystem? In this case, maybe fs_open_root(2) would be
a better name.

This *definitely* needs to be clearer in the description.