Commit Graph

1919 Commits

Author SHA1 Message Date
Michael Kerrisk 1e21a40290 eventfd2.2: New link to eventfd.2
The eventfd.2 page has some details on the eventfd2() system call,
which was new in Linux 2.6.27.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:41 +02:00
Michael Kerrisk e64b5482ad eventfd.2: Describe eventfd2() and EFD_NONBLOCK and EFD_CLOEXEC
Linux 2.6.27 added eventfd(), which supports a flags argument
that eventfd() did not provide.  The flags so far implemented
are EFD_NONBLOCK and EFD_CLOEXEC,

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:40 +02:00
Michael Kerrisk b25c5b2388 inotify_init.2, pipe.2, timerfd_create.2: Clarify *_NONBLOCK description
Make it clear that the NONBLOCK flag sets an attribute in the new
open file description.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:40 +02:00
Michael Kerrisk eb15342064 syscalls.2: Add new 2.6.27 system calls
Add pipe2(), dup3(), epoll_create1(), inotify_init1(),
eventfd2(), signalfd4().

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:40 +02:00
Michael Kerrisk 9502479bab open.2: spfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:40 +02:00
Michael Kerrisk 93ee8f96d4 open.2: FIXME: Add a FIXME regarding open flags
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:40 +02:00
Michael Kerrisk 19c110a619 timerfd_create.2: spfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:39 +02:00
Michael Kerrisk 3df1b973f9 timerfd_create.2: Document timerfd_create() TFD_CLOEXEC and TFD_NONBLOCK
TFD_CLOEXEC and TFD_NONBLOCK are supported since LInux 2.6.27.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:39 +02:00
Michael Kerrisk f1d97f6e4d open.2: tstamp
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:39 +02:00
Michael Kerrisk 46d8eb9cd0 epoll_create1.2: New link to epoll_create.2
epoll_create.2 now includes a description of the new epoll_create1()
system call.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:39 +02:00
Michael Kerrisk 24ec631f42 open.2: minor: Fix O_CLOEXEC wording re fcntl() calls
The current wording suggests that only a single fcntl()
operation is needed to set the FD_CLOEXEC flag, when "proper"
usage would be fcntl(F_GETFD) + fcntl(F_SETFD) to get the
flags and then update them.  So change the wording to indicate
that more than one fcntl() operation is required.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:39 +02:00
Michael Kerrisk 550f480fd4 epoll_create.2: Say more about unused epoll_create() 'size' arg
Supply a little more explanation about why the 'size' argument
of epoll_create() is nowadays ignored.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:39 +02:00
Michael Kerrisk 272fa3cbcf epoll_create.2: Add description of new epoll_create1()
The new epoll_create1() system call appeared in Linux 2.6.27.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:39 +02:00
Michael Kerrisk 0a8461f6d3 inotify_init1.2: New link to inotify_init.2
inotify_init.2 now includes a description of the new
inotify_init1() system call.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:38 +02:00
Michael Kerrisk c7d4277973 pipe.2: minor: Explicitly mention FD_CLOEXEC flag
Explicitly name FD_CLOEXEC constant when referring to
"close-on-exec flag".

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 07:49:18 +02:00
Michael Kerrisk 9009f8fc15 inotify_init.2: tfix: s/O_CLOEXEC/FD_CLOEXEC/
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 06:24:42 +02:00
Michael Kerrisk ef4d5ffd86 inotify_init.2: Add description of inotify_init1()
The inotify_init1() system call was added in Linux 2.6.27.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 06:24:32 +02:00
Michael Kerrisk 4cb3ac5f7a pipe2.2: New link to pipe.2
pipe(2) now contains a description of the new pipe2() syscall.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 06:24:01 +02:00
Michael Kerrisk 14393ac023 pipe.2: Add description of new pipe2() syscall
pipe2() was added in 2.6.27.  Describe the O_NONBLOCK and
O_CLOEXEC flags.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 06:23:53 +02:00
Michael Kerrisk a3bb543ceb dup.2: Refer to open(2) for why O_CLOEXEC is useful
Refer reader to open(2) for an explanation of why O_CLOEXEC can be useful.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 06:23:45 +02:00
Michael Kerrisk 4d98e97bbb dup3.2: New link to dup.2
dup.2 now contains the description of the new dup3() syscall.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 06:23:41 +02:00
Michael Kerrisk 798d8fd850 dup.2: Add description of dup3()
dup3() was added in kernel 2.6.27.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-11 06:23:37 +02:00
Michael Kerrisk 6f52c9d40b getpriority: srcfix: added FIXME 2008-10-09 10:19:08 +02:00
Michael Kerrisk acddbaea0c Removed trailing white space at end of lines 2008-10-07 10:58:44 +02:00
Michael Kerrisk 5e1edcf261 umount2.2: Change link to point to new umount.2
The umount2() material migrated from mount.2 to umount.2

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-06 16:57:53 +02:00
Michael Kerrisk 9f6293c4ea tstamp 2008-10-06 16:39:20 +02:00
Michael Kerrisk 7f546896f5 tstamp 2008-10-06 16:26:23 +02:00
Michael Kerrisk 1ca091c669 pause.2: Small rewordings of DESCRIPTION.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-06 16:25:46 +02:00
Michael Kerrisk 85a2d4588e fallocate.2: Note lack of glibc wrapper; caller must use syscall(2)
Glibc doesn't (and quite probably won't) include a wrapper for this
system call.  Therefore, point out that potential callers will need
to use syscall(2), and rewrite the RETURN VALUE text to show things
as they would be if syscall() is used.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-06 15:29:45 +02:00
Michael Kerrisk 01b7704fb6 fallocate: Refer reader to posix_fallocate(3) for portable interface
Add a para to start of page that points out that this is the
low-level, Linux-specific API, and point the reader to posix_fallocate(3)
for the portable API.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-06 15:08:21 +02:00
Michael Kerrisk cea61382b1 proc.5: Add description of /proc/PID/mounts
Largely cribbed from existing /proc/mounts discussion, which is
about to be rewritten.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-06 14:16:16 +02:00
Michael Kerrisk 0a4d78bbe1 mount.2: Add description of namespace
Describe per-process namespaces, including discussion
of clone() and unshare CLONE_NEWNS, and /proc/PID/mounts.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-06 14:07:03 +02:00
Michael Kerrisk 852ae8c875 mount.2: List a few other file systems that we may see in /proc/filesystems
Add some modern file systems to that list (xfs, jfs, ext3, reiserfs).

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-06 13:19:51 +02:00
Michael Kerrisk a3b00c37dc mount.2: wfix: remove redundant "Linux Notes" subheading 2008-10-06 13:18:33 +02:00
Michael Kerrisk 5614f73308 mount.2, umount.2: split umoun*() out into a separate page
The length of this page means that it's becoming difficult to parse
which info is specific to mount() versus umount()/umount2(), so split
the umount material out into its own page.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-06 13:09:26 +02:00
Michael Kerrisk 9b9b4a8137 spfix 2008-10-06 11:49:27 +02:00
Michael Kerrisk cd7b18e735 pause.2: remove mention of words "library function"
This really is a system call.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-05 07:20:58 +02:00
Michael Kerrisk 374af67a42 getrlimit.2: refer to execve(2) for RLIMIT_STACK's effect on ARG_MAX
Refer the reader to new text in execve(2) that describes how
(since Linux 2.6.23) RLIMIT_STACK determines the value of ARG_MAX.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-05 06:24:36 +02:00
Michael Kerrisk 3a9dc9ff79 execve.2: _SC_ARG_MAX is no longer necessarily constant
POSIX.1-2001 says that the values returned by sysconf()
are constant for the life of the process.
But the fact that, since Linux 2.6.23, ARG_MAX is settable
via RLIMIT_STACK means _SC_ARG_MAX is no longer constant,
since it can change at each execve().

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-05 05:59:32 +02:00
Michael Kerrisk f202015b45 execve.2: Linux now imposes a floor on the ARG_MAX limit
Starting with Linux 2.6.23, the ARG_MAX limit became settable via
(1/4 of) RLIMIT_STACK.  This broke ABI compatibility if RLIMIT_STACK
was set such that ARG_MAX was < 32 pages.  Document the fact that
since 2.6.25 Linux imposes a floor on ARG_MAX, so that the old limit
of 32 pages is guaranteed.

For some background on the changes to ARG_MAX in kernels 2.6.23 and
2.6.25, see:
    http://sourceware.org/bugzilla/show_bug.cgi?id=5786
    http://bugzilla.kernel.org/show_bug.cgi?id=10095
    http://thread.gmane.org/gmane.linux.kernel/646709/focus=648101,
    checked into 2.6.25 as commit a64e715fc74b1a7dcc5944f848acc38b2c4d4ee2.

Also some reordering/rewording of the discussion of ARG_MAX.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-05 05:57:52 +02:00
Michael Kerrisk 00e8730f78 getrlimit.2: Reword/relocate discussion of BSD's historical RLIMIT_OFILE
The old sentence sat on its own in an odd place, and anyway the
modern BSDs use the name RLIMIT_NOFILE.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-05 05:42:32 +02:00
Michael Kerrisk f3504b0292 srcfix 2008-10-05 03:29:35 +02:00
Michael Kerrisk 3fb46b2b3b sigaction.2: wfix 2008-10-04 08:27:56 +02:00
Michael Kerrisk f7d174ea1b sigaction.2: refer reader to signal(7) for an overview of signals
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
Reported-by: Gergely Soos <sogerc1@gmail.com>
2008-10-04 08:01:49 +02:00
Michael Kerrisk 0ac0def44d sigaction.2: explain semantics of signal disposition during fork() and execve()
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-04 07:49:53 +02:00
Michael Kerrisk 0178675542 sigwaitinfo.2: distinguish per-thread and process-wide signals
A sentence clarifying that pending signal set is union of
per-thread and process-wide pending signal sets.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-04 07:39:50 +02:00
Michael Kerrisk 1218ca8771 sigwaitinfo.2: these interfaces have per-thread semantics
The page was previously fuzzy about whether the these interfaces
have process-wide or per-thread semantics.  (E.g., now the
page states that the calling *thread* (not process) is suspended
until the signal is delivered.)

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-04 07:36:18 +02:00
Michael Kerrisk 55aa29202c semop.2: wfix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-04 07:14:34 +02:00
Michael Kerrisk dfcc37a6ab getrusage.2: rusage measures are preserved across execve(2)
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-04 07:10:35 +02:00
Michael Kerrisk 6d01795229 sigaltstack.2: explain inheritance of alternate signal stack across fork(2)
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-04 06:58:36 +02:00
Michael Kerrisk a6b7b51147 sigpending.2: explain effect of fork() and execve() for pending signal set
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-04 06:38:30 +02:00
Michael Kerrisk 7acce9fb90 sigpending.2: explain how thread's pending signal set is defined
The pending set is the union of per-thread pending signals and process-wide
pending signals.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-04 06:34:38 +02:00
Michael Kerrisk eebf482da2 sigprocmask.2: explain effects of fork() and execve() for signal mask
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-04 06:30:10 +02:00
Michael Kerrisk 4c5bcd47bf sigaction.2: refer to signal(7) for more details on signal mask.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-04 05:49:12 +02:00
Michael Kerrisk bf50110267 execve.2: updated FIXME (for argv==NULL) in source comments 2008-10-03 06:04:03 +02:00
Michael Kerrisk 1dfd87eee5 readdir.2: The programmer must declare the old_linux_dirent structure
Glibc does not provide a definition of this structure.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-02 13:30:23 +02:00
Michael Kerrisk 8c1e7c9c47 wspacefix
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-02 13:28:02 +02:00
Michael Kerrisk b82f860abd readdir.2: s/dirent/old_linux_dirent/
Nowadays, this is the name of the structure in the kernel sources.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-02 13:26:33 +02:00
Michael Kerrisk f8c4a80874 readdir.2: remove words "which may change"
These words are slightly bogus: although the interface is obsolete,
for ABI-compatibility reasons, the kernel folk should never be changing
this interface.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-02 13:23:25 +02:00
Michael Kerrisk 30508251e3 readdir.2: remove header files from SYNOPSIS
glibc doesn't provide any support for readdir(2),
so remove these header files (which otherwirse suggest
that glibc does provide the required pieces).

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-02 13:20:39 +02:00
Michael Kerrisk d03fa0d508 getdents.2: Add an example program
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-02 13:15:42 +02:00
Michael Kerrisk 5ff3825e41 getdents.2: comment out linux_dirent fields with varying location
The location of the fields fater d_name varies according to
the size of d_name.  We can't properly declare them in C;
therefore, put those fields inside a comment.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-02 13:07:58 +02:00
Michael Kerrisk 5df2ee037d getdents.2: The DT_* constants are defined in <dirent.h>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-02 11:35:50 +02:00
Michael Kerrisk 298c502435 getdents.2: emove header files from SYNOPSIS
None of the header files provides what is needed.
Calls are made via syscall(2).

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-02 11:33:34 +02:00
Michael Kerrisk 64150629a7 getdents.2: The programmer must define the linux_dirent structure
Point out that this structure is not defined in glibc headers.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-02 11:27:17 +02:00
Michael Kerrisk affa1ac7b6 getdents.2: s/dirent/linux_dirent/
The structure isn't currently defined in glibc headers, and the kernel
name of the structure is 'linux_dirent' (as was already used in some,
but not all, places in this page).

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-02 11:15:28 +02:00
Michael Kerrisk 6d32be0960 tkill.2: EINVAL error can also occur for invalid TGID
The EINVAL error on an invalid TGID for tgkill() was
not documented; this change documents it.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-10-01 16:46:11 +02:00
Michael Kerrisk f1b0cf261c Document MS_SILENT (and MS_VERBOSE)
Maxin suggested a patch, which I've rewritten and expanded.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
Reported-by: Maxin B. John <maxin.john@ap.sony.com>
2008-10-01 15:17:47 +02:00
Michael Kerrisk efb92ba155 getdents.2, readdir.3: d_type is currently only supported on ext[234]
As at kernel 2.6.27, only ext[234] support d_type.
On other file systems, d_type is always set to DT_UNKNOWN (0).

Reported-by: Ricardo Catalinas Jiménez <jimenezrick@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-09-29 15:06:36 +02:00
Michael Kerrisk bc0a3def1d utimensat.2: POSIX.1-2008 revision will likely affect FTMs for futimens()
Make it clear that the POSIX.1 revision that is likely
to affect the feature test macro requirements for futimens() is
POSIX.1-2008.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
Reported-by: Nicolas François <nicolas.francois@centraliens.net>
2008-09-29 12:52:30 +02:00
Nicolas François 26b42bb4bf utimensat.2: Make various wordings a little more precise.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>

The times argument point to *an array of* structures, and the
man-page should say that consistently.
2008-09-29 12:42:09 +02:00
Michael Kerrisk 2dd5352dae send.2: make kernel version for MSG_CONFIRM more precise
s/2.3+ only/Since Linux 2.3.15/

Reported-by: Nicolas François <nicolas.francois@centraliens.net>
2008-09-29 12:35:13 +02:00
Nicolas François aab31be272 move_pages.2: Make a detail og EPERM error more precise
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-09-29 12:20:39 +02:00
Nicolas François 5f3fb725ab recv.2: Move kernel version number to first mention to MSG_ERRQUEUE.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-09-29 11:46:01 +02:00
Nicolas François 494b842ba0 Remove a line of junk text.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-09-29 11:30:57 +02:00
Nicolas François 178d104e83 Minor wording fixes
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-09-29 11:09:52 +02:00
Nicolas François 44e5793157 Typo and wording fixes
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-09-29 11:00:36 +02:00
Kirill A. Shutemov afc4edc132 semop.2: fix typo in example
(The '&' before sop in the semop() call is unneeded.)
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2008-09-29 09:49:35 +02:00
Michael Kerrisk e0d16ae5e7 wait4.2: wait3() is a library function layered on wait4().
On Linux wait3() is a library function implemented on top of wait4().
(Knowing this is useful when using strace(2), for example.)
2008-09-29 03:51:49 +02:00
Michael Kerrisk 986992f30d splice.2: note that SPLICE_F_MOVE is a no-op since kernel 2.6.21 2008-09-26 07:31:14 +02:00
Michael Kerrisk 901d59b5ce mlock.2: tweaks to Maxin John's patch 2008-09-25 11:18:08 +02:00
Michael Kerrisk 1ad3882cf8 tstamp 2008-09-25 11:11:53 +02:00
Maxin John 9fdc5b1260 mlock.2: add EAGAIN error.
Summary from mtk: recent work on mlock caused Maxin to notice that
the EAGAIN error was not documented.  KOSAKI Motohiro noted
that this behavior is longstanding.
=====
Dear Michael,

    As per the mlock(2) implementation bugfix which is present in
Linux 2.6.27-rc2 git commit,
(http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a477097d9c37c1cf289c7f0257dffcfa42d50197),
the mlock(2) man page should be modified to reflect the latest changes
in the kernel.

See the LKML thread regarding this commit :
http://www.nabble.com/mlock()-return-value-issue-in-kernel-2.6.23.17-td18751601.html

This patch modifies the mlock(2) behaviour as per the SUSv3 specification.

[ENOMEM]
    Some or all of the address range specified by the addr and
    len arguments does not correspond to valid mapped pages
    in the address space of the process.

[EAGAIN]
    Some or all of the memory identified by the operation could not
    be locked when the call was made.

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
Signed-off-by: Maxin B. John <maxin.john@ap.sony.com>

=====
From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
To: "Maxin John" <maxin.john@gmail.com>
Subject: Re: mlock(2) man page modifications
Cc: kosaki.motohiro@jp.fujitsu.com,
        "Michael Kerrisk" <mtk.manpages@googlemail.com>, man@vger.kernel.org
Date: Thu, 25 Sep 2008 15:04:49 +0900 (JST)

Hi Maxin,

Thank you for your attention.
I think your point and your patch are right.

However, my patch is trivial regression fix, not behavior change.
An older kernel can return EAGAIN at memory stavation.
my patch has following hunk.

> +++ b/mm/mlock.c
> @@ -78,8 +78,6 @@ success:
>  
>         mm->locked_vm -= pages;
>  out:
> -       if (ret == -ENOMEM)
> -               ret = -EAGAIN;

In addition, 2.6.11 (oldest code of git repository) has following code.


static int mlock_fixup(struct vm_area_struct * vma, 
        unsigned long start, unsigned long end, unsigned int newflags)
{
(snip)
        vma->vm_mm->locked_vm -= pages;
out:
        if (ret == -ENOMEM)
                ret = -EAGAIN;
        return ret;
}


that behavior is linux mlock's behavior for long long time.

Thanks!
2008-09-25 11:09:31 +02:00
Sam Varshavchik 9291ce36fe ffix 2008-09-25 09:50:14 +02:00
Michael Kerrisk ee2c437cd5 update .TH timestamp 2008-09-24 22:50:11 +02:00
Michael Kerrisk c8bd05f909 Add more detail about wrapper functions
Add a few more details about work generally done by wrapper
functions.  Note that syscall(2) performs the same steps.
2008-09-24 16:10:00 +02:00
Michael Kerrisk 314c8ff41d Wording fix 2008-09-23 07:22:43 +02:00
Sam Varshavchik 33fb70ba7c s/it_interval/it_value/ when talking about TIMERFD_ABSTIME (bis). 2008-09-23 07:17:40 +02:00
Sam Varshavchik c3afed740a s/it_interval/it_value/ when talking about TIMERFD_ABSTIME. 2008-09-23 07:07:55 +02:00
Michael Kerrisk e7d807b715 Wording fix. 2008-09-23 06:58:51 +02:00
John Reiser a1d48abb60 Fine tune discussion of getpid() caching bug.
The error by getpid() in the presence of clone() occurs
only for a fork-like clone (one that omits CLONE_VM from the flags.)
This is a low-level detail, but there is no problem [known-to-me]
for thread-like clone().
2008-09-23 06:55:29 +02:00
Michael Kerrisk c60237c9b5 Clarify text describing getpid() caching bug for clone() wrapper.
See also: http://sourceware.org/bugzilla/show_bug.cgi?id=6910
and https://bugzilla.redhat.com/show_bug.cgi?id=417521
2008-09-23 05:04:49 +02:00
Michael Kerrisk 67f0f50d07 Describe getpid()'s PID caching and its consequences.
getpid() caches the PID after the first call.  This relies
on support in the glibc wrappers for fork()/vfork()/clone().
However, if syscall() is used to directly invoke fork()/vfork()/clone(),
the cache is not updated, and getpid() in the child procudes the wrong
result.
2008-09-23 04:12:27 +02:00
Michael Kerrisk 82d2be3d9d > > Additionally, you may want to make a note in the stat/lstat man page that on
> > Linux, lstat(2) will generally not trigger automounter action, whereas
> > stat(2) will.
> 
> I don't understand this last piece.  Can you say some more.  (I'm not
> familiar with automounter details.)
 
An automounter (either an explicit one, like autofs, or an implicit
one, such as are used by AFS or NFSv4) is something that triggers
a mount when something is touched.
 
However, it's undesirable to automount, say, everyone's home
directory just because someone opened up /home in their GUI
browser or typed "ls -l /home".  The early automounters simply
didn't list the contents until you accessed it by name;
this is still the case when you can't enumerate a mapping
(say, all DNS names under /net).  However, this is extremely
inconvenient, too.
 
The solution we ended up settling on is to create something
that looks like a directory (i.e. reports S_IFDIR in stat()),
but behaves somewhat like a symlink.  In particular, when it is
accessed in a way where a symlink would be dereferenced,
the automount triggers and the directory is mounted.  However,
system calls which do *not* cause a symlink to be dereferenced,
like lstat(), also do not cause the automounter to trigger.
This means that "ls -l", or a GUI file browser, can see a list
of directories without causing each one of them to be automounted.
 
        -hpa
2008-09-10 10:40:01 +00:00
Michael Kerrisk 67da52673e Start new sentence on new source line. 2008-09-10 03:45:09 +00:00
Michael Kerrisk eeeffe2d3b grfix 2008-09-10 03:41:35 +00:00
Michael Kerrisk 86d89e4c89 Add more detail in mount options that prevent updates to atime. 2008-09-09 05:25:25 +00:00
Michael Kerrisk e21a7c25fe s/filesystem/file system/ 2008-09-09 05:13:34 +00:00
Michael Kerrisk 614aae4105 Add "512B" to comment for st_blocks 2008-09-09 05:12:17 +00:00
Michael Kerrisk 5b0dc1baed s/time zone/timezone/ for consistency across pages and with POSIX.1. 2008-09-07 04:17:25 +00:00