memfd_create.2, mmap.2, shmget.2: Document the EPERM for huge page allocations

This error can occur if the caller is does not have CAP_IPC_LOCK
and is not a member of the sysctl_hugetlb_shm_group.

Reported-by: Yang Xu <xuyang2018.jy@fujitsu.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Michael Kerrisk 2021-05-17 15:31:08 +12:00
parent 6cee0ddeb4
commit 090fdddb43
3 changed files with 32 additions and 1 deletions

View File

@ -201,6 +201,19 @@ The
.BR memfd_create ()
system call first appeared in Linux 3.17;
glibc support was added in version 2.27.
.TP
.B EPERM
The
.B MFD_HUGETLB
flag was specified, but the caller was not privileged (did not have the
.B CAP_IPC_LOCK
capability)
and is not a member of the
.I sysctl_hugetlb_shm_group
group; see the description of
.I /proc/sys/vm/sysctl_hugetlb_shm_group
in
.BR proc (5).
.SH CONFORMING TO
The
.BR memfd_create ()

View File

@ -628,6 +628,18 @@ was mounted no-exec.
The operation was prevented by a file seal; see
.BR fcntl (2).
.TP
.B EPERM
The
.B MAP_HUGETLB
flag was specified, but the caller was not privileged (did not have the
.B CAP_IPC_LOCK
capability)
and is not a member of the
.I sysctl_hugetlb_shm_group
group; see the description of
.I /proc/sys/vm/sysctl_hugetlb_shm_group
in
.TP
.B ETXTBSY
.B MAP_DENYWRITE
was set but the object specified by

View File

@ -273,7 +273,13 @@ The
.B SHM_HUGETLB
flag was specified, but the caller was not privileged (did not have the
.B CAP_IPC_LOCK
capability).
capability)
and is not a member of the
.I sysctl_hugetlb_shm_group
group; see the description of
.I /proc/sys/vm/sysctl_hugetlb_shm_group
in
.BR proc (5).
.SH CONFORMING TO
POSIX.1-2001, POSIX.1-2008, SVr4.
.\" SVr4 documents an additional error condition EEXIST.