Re: [RFC PATCH] vfs: add MNT_NOFOLLOW flag to umount(2)

From: Bodo Eggert
Date: Mon Feb 08 2010 - 05:37:49 EST


On Fri, 5 Feb 2010, Miklos Szeredi wrote:

On Thu, 04 Feb 2010, Bodo Eggert wrote:
Miklos Szeredi <miklos@xxxxxxxxxx> wrote:

Additionally, return -EINVAL if an unknown flag is encountered. This
makes it possible for the caller to determine if a flag is supported
or not (at least on kernels with this patch).

There should be a guaranteed-to-be-invalid flag or flag-combination in
order to safely detect this feature.

It's difficult though, because the app would have to make sure the
detection itself would reliably fail, and with a different error.

Simply checking the kernel version might be easier.

Yes, that's exactly what I intend to make possible:

| ret = umount("/tmp/mkstmp", UMOUNT_IMPOSSIBLE_FLAG);
| if (ret != -1 || errno != -EINVAL)
| goto extended_mount_flags_are_not_supported;

Checking the kernel version is a bad idea, because the application might be portable, or features might be backported. ¢¢