mm: make MEMFD_CREATE into a selectable config option
authorThomas Weißschuh <linux@weissschuh.net>
Fri, 30 Jun 2023 09:08:53 +0000 (11:08 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 18 Aug 2023 17:12:01 +0000 (10:12 -0700)
The memfd_create() syscall, enabled by CONFIG_MEMFD_CREATE, is useful on
its own even when not required by CONFIG_TMPFS or CONFIG_HUGETLBFS.

Split it into its own proper bool option that can be enabled by users.

Move that option into mm/ where the code itself also lies.  Also add
"select" statements to CONFIG_TMPFS and CONFIG_HUGETLBFS so they
automatically enable CONFIG_MEMFD_CREATE as before.

Link: https://lkml.kernel.org/r/20230630-config-memfd-v1-1-9acc3ae38b5a@weissschuh.net
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Tested-by: Zhangjin Wu <falcon@tinylab.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Christian Brauner <brauner@kernel.org>
Cc: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/Kconfig
mm/Kconfig

index 18d034e..19975b1 100644 (file)
@@ -169,6 +169,7 @@ source "fs/sysfs/Kconfig"
 config TMPFS
        bool "Tmpfs virtual memory file system support (former shm fs)"
        depends on SHMEM
+       select MEMFD_CREATE
        help
          Tmpfs is a file system which keeps all files in virtual memory.
 
@@ -240,6 +241,7 @@ config HUGETLBFS
        bool "HugeTLB file system support"
        depends on X86 || IA64 || SPARC64 || ARCH_SUPPORTS_HUGETLBFS || BROKEN
        depends on (SYSFS || SYSCTL)
+       select MEMFD_CREATE
        help
          hugetlbfs is a filesystem backing for HugeTLB pages, based on
          ramfs. For architectures that support it, say Y here and read
@@ -264,9 +266,6 @@ config HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON
          enable HVO by default. It can be disabled via hugetlb_free_vmemmap=off
          (boot command line) or hugetlb_optimize_vmemmap (sysctl).
 
-config MEMFD_CREATE
-       def_bool TMPFS || HUGETLBFS
-
 config ARCH_HAS_GIGANTIC_PAGE
        bool
 
index 0913043..22acffd 100644 (file)
@@ -1144,6 +1144,9 @@ config KMAP_LOCAL_NON_LINEAR_PTE_ARRAY
 config IO_MAPPING
        bool
 
+config MEMFD_CREATE
+       bool "Enable memfd_create() system call" if EXPERT
+
 config SECRETMEM
        default y
        bool "Enable memfd_secret() system call" if EXPERT