Re: [PATCH 5/6] fsmount: do not use legacy MS_ flags

From: Miklos Szeredi
Date: Fri Sep 21 2018 - 11:28:25 EST


On Fri, Sep 21, 2018 at 5:07 PM, David Howells <dhowells@xxxxxxxxxx> wrote:
> Miklos Szeredi <mszeredi@xxxxxxxxxx> wrote:
>
>> What happens if we introduce new flags for fsmount(2) and are already out
>> of flags for mount(2)? I see a big mess that way.
>>
>> So let's instead start a clean new set, to be used in the new API.
>
> If we must. But let's not call them just M_* please. Let's call them
> MOUNT_ATTR_* or something.

Oh well.

>> The MS_RELATIME flag was accepted but ignored. Simply leave this out of
>> the new set, since "relatime" is the default.
>
> Can we make RELATIME, STRICTATIME and NOATIME an enum rather than individual
> flags?

Sure.

>
> #define MOUNT_ATTR_RDONLY 0x01
> #define MOUNT_ATTR_NOSUID 0x02
> #define MOUNT_ATTR_NODEV 0x04
> #define MOUNT_ATTR_NOEXEC 0x08
> #define MOUNT_ATTR_RELATIME 0x00
> #define MOUNT_ATTR_NOATIME 0x10
> #define MOUNT_ATTR_STRICTATIME 0x20
> #define MOUNT_ATTR_ATIME_MASK 0x30
> #define MOUNT_ATTR_NODIRATIME 0x40
>
> We can also use these for a mount_setattr() syscall:
>
> mount_setattr(int dfd, const char *path, unsigned int atflags,
> unsigned int attr_values,
> unsigned int attr_mask);
>
> where atflags can potentially include AT_RECURSIVE.

Indeed. Also, shouldn't these include the propagation flags?

Thanks,
Miklos