summaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/mount.h
diff options
context:
space:
mode:
authorDavid Howells2018-11-02 00:36:23 +0100
committerAl Viro2019-03-20 23:49:06 +0100
commitcf3cba4a429be43e5527a3f78859b1bfd9ebc5fb (patch)
tree41f4c4a999e7e22644b0f3a220208519dc1f4ccd /include/uapi/linux/mount.h
parentvfs: syscall: Add fsmount() to create a mount for a superblock (diff)
downloadkernel-qcow2-linux-cf3cba4a429be43e5527a3f78859b1bfd9ebc5fb.tar.gz
kernel-qcow2-linux-cf3cba4a429be43e5527a3f78859b1bfd9ebc5fb.tar.xz
kernel-qcow2-linux-cf3cba4a429be43e5527a3f78859b1bfd9ebc5fb.zip
vfs: syscall: Add fspick() to select a superblock for reconfiguration
Provide an fspick() system call that can be used to pick an existing mountpoint into an fs_context which can thereafter be used to reconfigure a superblock (equivalent of the superblock side of -o remount). This looks like: int fd = fspick(AT_FDCWD, "/mnt", FSPICK_CLOEXEC | FSPICK_NO_AUTOMOUNT); fsconfig(fd, FSCONFIG_SET_FLAG, "intr", NULL, 0); fsconfig(fd, FSCONFIG_SET_FLAG, "noac", NULL, 0); fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, NULL, NULL, 0); At the point of fspick being called, the file descriptor referring to the filesystem context is in exactly the same state as the one that was created by fsopen() after fsmount() has been successfully called. Signed-off-by: David Howells <dhowells@redhat.com> cc: linux-api@vger.kernel.org Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/uapi/linux/mount.h')
-rw-r--r--include/uapi/linux/mount.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/uapi/linux/mount.h b/include/uapi/linux/mount.h
index 3888d3b91dc5..96a0240f23fe 100644
--- a/include/uapi/linux/mount.h
+++ b/include/uapi/linux/mount.h
@@ -78,6 +78,14 @@
#define FSOPEN_CLOEXEC 0x00000001
/*
+ * fspick() flags.
+ */
+#define FSPICK_CLOEXEC 0x00000001
+#define FSPICK_SYMLINK_NOFOLLOW 0x00000002
+#define FSPICK_NO_AUTOMOUNT 0x00000004
+#define FSPICK_EMPTY_PATH 0x00000008
+
+/*
* The type of fsconfig() call made.
*/
enum fsconfig_command {