aboutsummaryrefslogtreecommitdiffstats
path: root/man
AgeCommit message (Collapse)AuthorFilesLines
2025-02-12man/man2/kill.2: RETURN VALUE: Fix wording issue with sig=0Amit Pinhas1-1/+3
The DESCRIPTION says: If *sig* is 0, then no signal is sent, but existence and permission checks are still performed; this can be used to check for the existence of a process ID. On the other hand, the `RETURN VALUE` section contradicted that. On success (at least one signal was sent), zero is returned. On error, -1 is returned... How can I get 0 when providing sig=0, if no signal was actually sent, which is the criteria for success of this call??? Reported-by: Amit Pinhas <amitpinhass@gmail.com> Co-authored-by: Alejandro Colomar <alx@kernel.org> Signed-off-by: Amit Pinhas <amitpinhass@gmail.com> Message-ID: <a4fa37e0fc89a3c99982ace3fe381991ebe85b00.1739393685.git.amitpinhass@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-02-12man/man7/bpf-helpers.7: Refresh page from Linux v6.13Alejandro Colomar1-14/+16
Scripted change: $ ~/src/linux/linux/v6.13/scripts/bpf_doc.py \ | rst2man \ >man7/bpf-helpers.7; Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-02-10man/man3/timespec_get.3: Correct return value and clarify descriptionMark Harris1-26/+37
- 0, not -1, is returned for an unsupported time base or error (C23 7.29.2.6, 7.29.2.7; POSIX.1-2024 line 74358). - Clarify that any supported value of base is always nonzero (i.e., there is no overlap between the two return value cases that may require errno or some other source to disambiguate) (C23 7.29.2.6, 7.29.2.7; POSIX.1-2024 line 74357). - Clarify that timespec_getres(NULL, base) is a valid call to check whether the specified time base is supported (C23 7.29.2.7). - Clarify that the resolution for a particular time base is constant for the lifetime of the process (i.e., there is no need to retrieve it repeatedly) (C23 7.29.2.7). - Calls to these functions are not technically equivalent to any clock_* function call; at least the return value will be different. Clarify that it is the time and resolution that are the same. - The ERRORS section is removed, because it states only what is true for every function that does not state otherwise (i.e., errno might be affected by underlying system calls). Fixes: 7bda5119fe5e (2024-09-08; "timespec_get.3, timespec_getres.3: Add page and link page") Cc: наб <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Mark Harris <mark.hsj@gmail.com> Message-ID: <5f8dc5d2dc51f080a18de53e98610df43389b98b.1739063937.git.mark.hsj@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-02-10man/man3/regex.3: EXAMPLES: Don't use z length modifier with unsigned intArkadiusz Drabczyk1-1/+1
GCC and Clang print warnings: $ clang main.c -Wall main.c:30:23: warning: format specifies type 'size_t' (aka 'unsigned long') but the argument has type 'unsigned int' [-Wformat] 30 | printf("#%zu:\n", i); | ~~~ ^ | %u 1 warning generated. $ gcc main.c -Wall main.c: In function ‘main’: main.c:30:16: warning: format ‘%zu’ expects argument of type ‘size_t’, but argument 2 has type ‘unsigned int’ [-Wformat=] 30 | printf("#%zu:\n", i); | ~~^ ~ | | | | | unsigned int | long unsigned int | %u Fixes: b42296e4feaf (2022-09-15; "Various pages: EXAMPLES: Use unsigned types for loop iterators") Signed-off-by: Arkadiusz Drabczyk <arkadiusz@drabczyk.org> Message-ID: <20250207211628.25164-1-arkadiusz@drabczyk.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-02-10man/man2/clone.2: Use munmap(2) to free 'stack'Alejandro Colomar1-0/+2
Cc: "Eric W. Biederman" <ebiederm@xmission.com> Reported-by: Chen Linxuan <chenlinxuan@uniontech.com> Message-ID: <647EBDB1A8DE7507+20250121031351.548052-1-chenlinxuan@uniontech.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-02-02man/man2/mkdir.2: ERRORS: Add EOVERFLOWChen Linxuan1-0/+4
mkdir(2) and mkdirat(2) might set errno to EOVERFLOW when UID or GID mapping has not been configured. Here's a small program that shows this behavior: #define _GNU_SOURCE #include <err.h> #include <sched.h> #include <stdlib.h> #include <sys/mman.h> #include <sys/mount.h> #include <sys/stat.h> #include <sys/wait.h> #include <unistd.h> static int childFunc(void *_) { if (mount("tmpfs", "/tmp", "tmpfs", 0, NULL)) err(EXIT_FAILURE, "mount"); if (mkdir("/tmp/test", 0755) == -1) err(EXIT_FAILURE, "mkdir"); return 0; } #define STACK_SIZE (1024 * 1024) int main(void) { char *stack; /* Start of stack buffer */ char *stackTop; /* End of stack buffer */ pid_t pid; stack = mmap(NULL, STACK_SIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0); if (stack == MAP_FAILED) err(EXIT_FAILURE, "mmap"); stackTop = stack + STACK_SIZE; pid = clone(childFunc, stackTop, CLONE_NEWUSER | CLONE_NEWNS | SIGCHLD, NULL); if (munmap(stack, STACK_SIZE) == -1) err(EXIT_FAILURE, "munmap"); if (pid == -1) err(EXIT_FAILURE, "clone"); if (waitpid(pid, NULL, 0) == -1) err(EXIT_FAILURE, "waitpid"); exit(EXIT_SUCCESS); } Link: <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=036d523641c66bef713042894a17f4335f199e49> Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com> Message-ID: <F22A2B1500170B63+20250202135733.11800-1-chenlinxuan@uniontech.com> [alx: wfix] Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-02-02man/man7/signal.7: Update definition of SIGCHLD for POSIX.1-2001Arkadiusz Drabczyk1-2/+3
This is an XSI extension supported by Linux. Link: <https://unix.stackexchange.com/q/790116/72304> Link: <https://lore.kernel.org/linux-man/Z5U0Wh_KF3Ki62Pk@comp../> Signed-off-by: Arkadiusz Drabczyk <arkadiusz@drabczyk.org> Message-ID: <20250202130331.20320-1-arkadiusz@drabczyk.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-02-02man/man7/sched.7: Mention autogroup disabled behaviorPhil Auld1-0/+5
The autogroup feature can be contolled at runtime when built into the kernel. Disabling it in this case still creates autogroups and still shows the autogroup membership for the task in /proc. The scheduler code will just not use the the autogroup task group. This can be confusing to users. Add a sentence to this effect to sched.7 to point this out. The kernel code shows how this is used. The sched_autogroup_enabled toggle is only used in one place. kernel/sched/autogroup.h: static inline struct task_group * autogroup_task_group(struct task_struct *p, struct task_group *tg) { extern unsigned int sysctl_sched_autogroup_enabled; int enabled = READ_ONCE(sysctl_sched_autogroup_enabled); if (enabled && task_wants_autogroup(p, tg)) return p->signal->autogroup->tg; return tg; } task_wants_autogroup() is in kernel/sched/autogroup.c: bool task_wants_autogroup(struct task_struct *p, struct task_group *tg) { if (tg != &root_task_group) return false; ... return true; } One can see that any group set other than root also bypasses the use of the autogroup. All of the machinery around the creation of the autogroup is not effected by the toggle. From userspace: 0 /autogroup-112 nice 0 Note, systemd based system these days is not really using autogroups at all anyway because any task in a non-root cgroup bypasses the autogroup as well. Cc: Carlos O'Donell <codonell@redhat.com> Signed-off-by: Phil Auld <pauld@redhat.com> Message-ID: <20250116143747.2366152-1-pauld@redhat.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-02-02man/man2/rt_sigqueueinfo.2: tfix (tid => tgid)Askar Safin1-1/+1
Signed-off-by: Askar Safin <safinaskar@zohomail.com> Message-ID: <20250130050625.3356602-1-safinaskar@zohomail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-02-02man/man5/proc_pid_limits.5: tfixAlejandro Colomar1-1/+1
Reported-by: "Tomerius, Kai" <Kai.Tomerius@elektrobit.com> Fixes: 07c3768e9db8 (2023-08-15; "proc.5, proc_pid_limits.5: Split /proc/PID/limits from proc(5)") Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-28man/man7/pathname.7: Pathnames are opaque C stringsAlejandro Colomar1-85/+2
On Mon, Jan 27, 2025 at 07:27:59PM +0100, наб wrote: > Skimming the thread: UNIX paths are sequences of non-NUL bytes. > > It is never correct to expect to be able to have a (parse, unparse) > operation pair for which unparse(parse(x)) = x for path x. > > It's obviously wrong to reject a pathname just because you dont like it. > > Thus, when displaying a path, either (a) dump it directly to the output > (the user has configured their display device to understand the paths they use), > or if that's not possible (b) setlocale(LC_ALL, "") + mbrtowc() loop > and render the result (applying usual ?/� substitutions for mbrtowc() > errors makes sense here). > > There are very few operations on paths that are actually reasonable > to do, ever; those are: appending stuff, prepending stuff > (this is just appending stuff with the arguments backwards), > and cleaving at /es; > the "stuff" better be copied whole-sale from some other path > or an unprocessed argument (or, sure, the PFCS). > > If you're getting bytes to append to a path, do that directly. > > If you're getting characters to append to a path, > then wctomb(3) is the only non-invalid solution, > since that (obviously) turns characters into bytes in the current > locale, which (ex def) is the operation desired. > > I don't understand what the UTF-32 dance is supposed to be. > > If you're recommending transcoding paths, don't. > > To re-iterate: paths are not character sequences. > They do not represent characters. > You can't meaningfully coerce them thusly without loss of precision > (this is ok to do for display! and nothing else). > If at any point you find yourself turning wchar_t -> char > you are doing something wrong; > if you find yourself doing char -> wchar_t for anything beside display > you should probably reconsider. > > This is different under Win32 of course. But that concerns us naught. Suggested-by: наб <nabijaczleweli@nabijaczleweli.xyz> Cc: Jason Yundt <jason@jasonyundt.email> Cc: Florian Weimer <fweimer@redhat.com> Cc: "G. Branden Robinson" <branden@debian.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-28man/man7/pathname.7: EXAMPLES: Use a non-ASCII filenameAlejandro Colomar1-1/+1
The ASCII filename was too simple to actually show anything useful. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-28man/man7/pathname.7: Add file documenting pathnamesJason Yundt1-0/+159
The goal of this new manual page is to help people create programs that do the right thing even in the face of unusual paths. The information that I used to create this new manual page came from these sources: Link: <https://unix.stackexchange.com/a/39179/316181> Link: <https://sourceware.org/pipermail/libc-help/2024-August/006737.html> Link: <https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/fs/ext4/ext4.h?h=v6.12.9#n2288> Link: <man:unix(7)> Link: <https://unix.stackexchange.com/q/92426/316181> Cc: Florian Weimer <fweimer@redhat.com> Signed-off-by: Jason Yundt <jason@jasonyundt.email> Message-ID: <20250121133523.24606-1-jason@jasonyundt.email> Cc: "G. Branden Robinson" <branden@debian.org> [alx: wfix, ffix, and other tweaks] Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-22man/man7/unicode.7: pfixAlejandro Colomar1-1/+1
Reported-by: Wyatt Carpenter <wyattscarpenter@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-15man/man7/man-pages.7: Stop telling contributors to write titles in all capsJason Yundt1-2/+1
Recently, I submitted my first patch to the Linux man-pages project. In my patch, I had created a new manual page. On the manual page’s title line, I had written the title of my new page in all caps because man-pages(7) said that I should write it that way. It turns out that man-pages(7) was wrong and that the title on the title line should have matched the title in the manual page’s filename [1][2]. This commit corrects man-pages(7) so that it does not tell contributors to use all caps when writing titles on title lines. Link: [1] <https://lore.kernel.org/linux-man/rph24kz36vysoeix4qoxxxcwq3c3fskws2vmxkkgcb2lpits3f@ysm7ug66svzh/T/#mc84250a6634d7f776118879021331001cceccbe5> Link: [2] <https://lore.kernel.org/linux-man/mog6nnwzwl2dmlrec5b7l76wbxlsnklvdulok644x6o557trib@3zwtoz47r4x3/T/#mf71422d0e159210a7ca2798f2bba50a668e1410e> Message-ID: <20250114211427.160509-1-jason@jasonyundt.email> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-14man/man2/fork.2: Add _exit(2) to exampleTobias Stoeckmann1-1/+3
The _exit(2) function is a better choice for exiting a child in many cases. Most prominently it avoids calls of functions registered with atexit(3) by the parent. There are valid reasons to call exit(3) and the example is actually one of them: flush FILE-based output. Since atexit(3) is never called, we could just stay with exit(3). Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org> Message-ID: <tngwcffbrzbfkj6vrxgxpekrp3bzuftdy2mzow56xyfkrcna2w@nbgr2ourerxo> Link: <https://github.com/shadow-maint/shadow/pull/1171> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-11man/man3/: SYNOPSIS: Use typeof() to improve readability of function pointer ↵Alejandro Colomar2-2/+2
types Due to different spacing, I had missed these ones in the previous commits of this kind. Suggested-by: Jorenar <dev@jorenar.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-11man/man7/user_namespaces.7: tfixAlexander Stepchenko1-1/+1
Fixes: 8c74a1cea495 (2016-07-07; "user_namespaces.7: Clarify details of CAP_SYS_ADMIN and cgroup v1 mounts") Signed-off-by: Alexander Stepchenko <geochip@altlinux.org> Message-ID: <bc17315eff26eb31ecc78a2c44b89dfb077813df.1736444255.git.geochip@altlinux.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-11man/man2/statx.2: Document STATX_DIO_READ_ALIGNChristoph Hellwig1-1/+28
Document the new STATX_DIO_READ_ALIGN flag and the new stx_dio_read_offset_align field guarded by it. Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Christian Brauner <brauner@kernel.org> Cc: Jan Kara <jack@suse.cz> Cc: Chandan Babu R <chandan.babu@oracle.com> Cc: Hongbo Li <lihongbo22@huawei.com> Cc: Ryusuke Konishi <konishi.ryusuke@gmail.com> Cc: <linux-nilfs@vger.kernel.org> Cc: <linux-fsdevel@vger.kernel.org> Cc: <linux-xfs@vger.kernel.org> Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> Signed-off-by: Christoph Hellwig <hch@lst.de> Message-ID: <20250109083226.GA22264@lst.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-11src/bin/diffman, man/man1/diffman: Remove programAlejandro Colomar1-55/+0
It was useful for implementing duffman(1), but now it doesn't use it anymore. Drop this program. Users can do this instead: $ MAN_KEEP_FORMATTING=1 diff -u <(man page1) <(man page2); Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-11man/man1/diffman-git.1: Add manual pageAlejandro Colomar1-0/+68
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-09man/man2/stat.2: Linux 6.11 allows using NULL with AT_EMPTY_PATH.enh1-1/+3
Cc: Dan Albert <danalbert@google.com> Signed-off-by: Elliott Hughes <enh@google.com> Message-ID: <CAJgzZoqAOpJajmAnr-i9h3sPC8F_Uu0A+3eg4nkP+xTAV5fPGg@mail.gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-07man/man2/setns.2: Add missing info about time nsMichal Clapinski1-1/+11
Only singlethreaded processes can setns into time ns. Link: <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/time/namespace.c?h=v6.12#n309> Signed-off-by: Michal Clapinski <mclapinski@google.com> Message-ID: <20250107135700.3995936-1-mclapinski@google.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-05man/man2/signal.2: VERSIONS: The typedef-less definition of signal(2) isn't ↵Alejandro Colomar1-2/+2
hard to read At least if you use typeof(). Acked-by: Jorenar <dev@jorenar.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-05man/: Use typeof() to improve readability of function pointer typesAlejandro Colomar7-17/+17
An exception of good taste is structure members. There, for alignment reasons, traditional syntax seems more appropriate usually. Suggested-by: Jorenar <dev@jorenar.com> Cc: Martin Uecker <uecker@tugraz.at> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-05src/bin/diffman, man/man1/diffman.1: Use man(1) to format the pagesAlejandro Colomar1-0/+3
This allows using the environment variables that man(1) understands. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-05man/man3/: EXAMPLES: wsfixAlejandro Colomar2-2/+2
Add a space after a cast. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-05man/man3/: EXAMPLES: Remove unnecessary parenthesesAlejandro Colomar3-3/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-05man/man3/sem_open.3: SYNOPSIS: This is a variadic functionAlejandro Colomar1-3/+2
Specify the prototype consistently with open(2). Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-04man/man2/io_submit.2: Document RWF_NOAPPENDJohn Garry1-0/+10
Document flag introduced in Linux v6.9. Cc: Rich Felker <dalias@libc.org> Cc: Christian Brauner <brauner@kernel.org> Signed-off-by: John Garry <john.g.garry@oracle.com> Message-ID: <20241126090847.297371-3-john.g.garry@oracle.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-04man/man2/readv.2: Document RWF_NOAPPENDJohn Garry1-0/+23
Document flag introduced in Linux v6.9. Cc: Rich Felker <dalias@libc.org> Cc: Christian Brauner <brauner@kernel.org> Signed-off-by: John Garry <john.g.garry@oracle.com> Message-ID: <20241126090847.297371-2-john.g.garry@oracle.com> [alx: wfix, srcfix] Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-04man/man2/statx.2: Update STATX_WRITE_ATOMIC filesystem supportJohn Garry1-0/+9
Linux v6.13 will include atomic write support for xfs and ext4, so update STATX_WRITE_ATOMIC commentary to mention that. Cc: "Darrick J. Wong" <djwong@kernel.org> Cc: <ritesh.list@gmail.com> Signed-off-by: John Garry <john.g.garry@oracle.com> Message-ID: <20241203145359.2691972-1-john.g.garry@oracle.com> [alx: ffix] Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-04man/man3/pthread_cond_init.3: Remove EINTR error codeArkadiusz Drabczyk1-3/+0
In pthreads.7 it says: "For each of the pthreads functions that can return an error, POSIX.1-2001 specifies that the function can never fail with the error EINTR." Link: <https://lore.kernel.org/linux-man/Z3W_qgawqyEB-QrA@comp../> Cc: Florian Weimer <fweimer@redhat.com> Signed-off-by: Arkadiusz Drabczyk <arkadiusz@drabczyk.org> Message-ID: <20250103173816.6409-2-arkadiusz@drabczyk.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2025-01-04man/man7/signal.7: Don't mention that pthread API can return EINTRArkadiusz Drabczyk1-4/+0
In pthreads.7 it says: "For each of the pthreads functions that can return an error, POSIX.1-2001 specifies that the function can never fail with the error EINTR." Link: <https://lore.kernel.org/linux-man/Z3W_qgawqyEB-QrA@comp../> Cc: Florian Weimer <fweimer@redhat.com> Signed-off-by: Arkadiusz Drabczyk <arkadiusz@drabczyk.org> Message-ID: <20250103173816.6409-1-arkadiusz@drabczyk.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-24man/man3/: Don't use 'length' to refer to buffer sizeAlejandro Colomar17-106/+106
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-24man/man3/stdio_ext.3: wfixAlejandro Colomar1-1/+1
For consistency with wide characters, say characters instead of bytes. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-24man/man3/{stdin,stdio}.3: SYNOPSIS: Consistently declare as 'extern' variablesAlejandro Colomar2-6/+6
And leave two spaces between the type name and the variable name. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-23man/man2/ioctl_pipe.2: SYNOPSIS: Fix $1, which is not an array parameterAlejandro Colomar1-2/+2
Link: <https://lore.kernel.org/linux-man/20241214180423.2thsuyyfosrlyajb@devuan/T/#u> Reported-by: Alejandro Colomar <alx@kernel.org> Suggested-by: Cyril Hrubis <chrubis@suse.cz> Cc: David Howells <dhowells@redhat.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-23man/man2/madvise.2: wfixLorenzo Stoakes1-1/+2
Cc: Jann Horn <jannh@google.com> Suggested-by: Vlastimil Babka <vbabka@suse.cz> Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> Message-ID: <20241206113418.14327-1-lorenzo.stoakes@oracle.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-22man/man3/string.3: SYNOPSIS: SimplifyAlejandro Colomar1-150/+76
Replace the prototypes by manual-page references, and use generic text which doesn't use the names of the parameters. It's just an overview. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-22src/bin/diffman, man/man1/diffman.1: -s: Add support for diff(1)'s -s flagAlejandro Colomar1-0/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-20man/man3/getline.3: wfixAlejandro Colomar1-2/+2
Fixes: ef53ef760638 (2024-12-18, "man/man3/getline.3: Clarify ERRORS") Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-19man/man3/getopt.3: Remove _<PID>_GNU_nonoption_argv_flags_ descriptionAhelenia Ziemiańska1-9/+6
Per <https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bf079e19f50d64aa5e05b5e17ec29afab9aabb20>: - this was set by bash 2.0 (1996-12) (implemented in glibc b07c5668f672125074dd5b0b658145e1544120be) - it's no longer set by bash 2.01 (1997-06) because it was bad - glibc disabled this with no way to enable it in 2001-08 (518a0dd201c48a5c15d73c1919c304a9f8f5e3c1) - glibc removed it in 2017 bf079e19f50d64aa5e05b5e17ec29afab9aabb20 So this was experienced by people for 5 months at best, and could remotely be experienced for 3 years (if you somehow wanted this bad behaviour and added it into your shell), over 20 years ago. No modern reader (or, frankly, non-modern reader) has ever used this, or could use it, really. Link to the removal note for completeness only. Link: <https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bf079e19f50d64aa5e05b5e17ec29afab9aabb20> Cc: Eugene Syromyatnikov <evgsyr@gmail.com> Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Message-Id: <dwfybzlb5ydbsc4puo6igj7nm7iregquv6hxhhqb53bwrvqswb@tarta.nabijaczleweli.xyz> [alx: Add break points in URI; minor tweaks to commit message too] Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-18man/man3/getline.3: Clarify ERRORSenh1-4/+6
Signed-off-by: Elliott Hughes <enh@google.com> Message-ID: <CAJgzZoruFUg6X=JUNJXCbBOKs13SX=dsNFNdTMct2VecUFG=ww@mail.gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-16man/man3/strverscmp.3: This is NOT the ordering used by ls -vAhelenia Ziemiańska1-15/+8
Compare, given: #include <stdlib.h> #include <stdio.h> #include <string.h> int compar(const char **l, const char **r) { return strverscmp(*l, *r); } int main(int argc, char ** argv) { qsort(argv + 1, argc - 1, sizeof(*argv), compar); for(int i = 1; i < argc; ++i) puts(argv[i]); } yields: $ /bin/ls -v1 a* # coreutils ls a-1.0a a-1.0.1a $ ../vers a* # as above a-1.0.1a a-1.0a $ ls -v1 a* # voreutils ls @ 5781698 with strverscmp()-equivalent sorting a-1.0.1a a-1.0a compare also the results for real data like netstat-nat-1.{0,1{,.1},2,3.1,4{,.{1,2,3,4,5,6,7,8,9,10}}}.tar.gz Thus, coreutils ls -v (and sort -V) does NOT use strverscmp(3); it uses a modified Debian version comparison algorithm with additional suffix processing and `ls -v`-specific exceptions. Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Message-Id: <myuppkwnltqtxduoop7g7wfuyou5cdo6sotocrvyztmqnazvph@tarta.nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-14man/man2/get_mempolicy.2: SYNOPSIS: ffixAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-14man/man2/: SYNOPSIS: Use array notationAlejandro Colomar2-5/+5
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-13man/: SYNOPSIS: Use typeof() to improve readability of function pointer typesAlejandro Colomar27-69/+79
Suggested-by: Jorenar <dev@jorenar.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-13man/man3/makecontext.3: SYNOPSIS: Add ellipsis to function typeAlejandro Colomar1-3/+3
The old syntax with empty parentheses has been removed from the language in C23. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-11man/man3/isalpha.3: tfixAlejandro Colomar1-12/+12
Fixes: ba687b00ecb3 (2023-07-30, "man3/: srcfix") Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-06proc_pid_fdinfo.5: Reduce indent for most of the pageIan Rogers1-36/+25
When /proc/pid/fdinfo was part of proc.5 man page the indentation made sense. As a standalone man page the indentation doesn't need to be so far over to the right. Remove the initial tagged pragraph, move the "since Linux 2.6.22" to a new HISTORY subsection. Suggested-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Message-Id: <20241206073828.1119464-1-irogers@google.com> [alx: ffix] Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-06src/bin/diffman, diffman.1: -U: Add support for diff(1)'s -U optionAlejandro Colomar1-0/+6
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-06src/bin/diffman: -w: Add support for diff(1)'s -w flagAlejandro Colomar1-0/+5
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-06ld.so.8: tfixAnhad Singh1-1/+1
Signed-off-by: Anhad Singh <andypython@protonmail.com> Message-Id: <20241206071814.55913-1-andypython@protonmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-05madvise.2: Add description of MADV_GUARD_INSTALL, MADV_GUARD_REMOVELorenzo Stoakes1-0/+102
Lightweight guard region support has been added to Linux 6.13, which adds MADV_GUARD_INSTALL and MADV_GUARD_REMOVE flags to the madvise() system call. Therefore, update the manpage for madvise() and describe these operations. Reviewed-by: Jann Horn <jannh@google.com> Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> Message-Id: <20241205104125.67518-1-lorenzo.stoakes@oracle.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-05madvise.2: MADV_SOFT_OFFLINE requests can report EBUSYtyberry@redhat.com1-0/+7
If the page could not be offlined madvise will report EBUSY. This might occur if the page is currently in use or locked. Signed-off-by: Tyonnchie Berry <tyberry@redhat.com> Message-Id: <Z0XzU9R9Kx0RoeUG@redhat.com> Acked-by: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com> [alx: wfix, ffix, and other tweaks] Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-04man/: wfixAlejandro Colomar4-4/+6
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-12-04process_madvise.2: Describe 6.13 behaviour permitting all madvise flagsLorenzo Stoakes1-1/+7
Since Linux 6.13 it has become possible to use all madvise flags when targeting the calling process. Reviewed-by: David Hildenbrand <david@redhat.com> Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> Message-Id: <20241129164422.89837-1-lorenzo.stoakes@oracle.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-28readlink.2: SYNOPSIS: Use array notationAlejandro Colomar1-3/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-26landlock_create_ruleset.2: SYNOPSIS: Add missing includeAlejandro Colomar1-0/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-26src/bin/sortman, sortman.1, share/mk/: Move sortman script to src/bin/, and ↵Alejandro Colomar1-0/+29
add manual page Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-25man1/: SYNOPSIS: ffixAlejandro Colomar13-39/+66
Use SY/YS, and other formatting improvements. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-25src/bin/diffman, diffman.1: Add program and its manual pageAlejandro Colomar1-0/+38
This program diffs manual pages. It's useful for reviewing changes to a manual page: $ diffman membarrier ./man2/membarrier.2 | less -R; Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-22getgroups.2: EXAMPLES: Add example programAlejandro Colomar1-0/+61
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-20posix_fadvise.2: POSIX_FADV_NOREUSE now supported.Yuanchu Xie1-1/+9
POSIX_FADV_NOREUSE is now supported in Linux. Update text regarding former no op behavior. Indicate the readahead policy and treatment of file pages read with this flag. Link: <https://lore.kernel.org/linux-mm/20221230215252.2628425-2-yuzhao@google.com/> Signed-off-by: T.J. Alumbaugh <talumbau@google.com> Signed-off-by: Yuanchu Xie <yuanchu@google.com> Message-Id: <20241120045214.1294799-1-yuanchu@google.com> Acked-by: Yu Zhao <yuzhao@google.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-19alloca.3: Clarify that alloca(3)ted space is deallocated when the caller returnsAlejandro Colomar1-1/+2
Reported-by: Pali Rohár <pali@kernel.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17mount_namespaces.7: Use correctly the terms "mount" and "mount point"Alejandro Colomar1-2/+3
On Sun, Nov 17, 2024 at 16:12:24 +0100, Michael Kerrisk wrote: > > A "mount" is a tuple consisting of: > * a mount ID > * a source (e.g., a device) > * a target or "mount point" (i.e. a path name) > * the ID of the parent of this mount > * other stuff (e.g., options) Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: Jakub Wilk <jwilk@jwilk.net> Acked-by: "Michael T. Kerrisk" <mtk.manpages@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17cgroups.7: grfixAlejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17man/: Terminology consistency reforms (n, size, length)Alejandro Colomar67-425/+425
Use 'length' for the lenght of a string. Use 'n' for the number of elements. Use 'size' for the number of bytes. (And in wide-character string functions, 'size' also refers to the number of wide characters.) The change is quite large, and I might have made some mistakes. But overall, this should improve consistency in use of these terms. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17getdents.2: ffixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17wcwidth.3: Rename function parameterAlejandro Colomar1-6/+6
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17fmod.3: ffixAlejandro Colomar1-1/+3
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17remquo.3: pfixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17time.1: ffixAlejandro Colomar1-1/+3
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17sscanf.3: wfixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17attributes.7: wfixAlejandro Colomar1-2/+2
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17syscalls.2: tfixAlejandro Colomar1-2/+2
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17time.1: ffixAlejandro Colomar1-1/+3
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: "G. Branden Robinson" <branden@debian.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17sscanf.3: tfixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17sched_get_priority_max.2: pfixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17sscanf.3: ffixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17man/: tfixAlejandro Colomar4-4/+4
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17scanf.3: pfixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17proc_pid_fd.5: ffixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Cc: "G. Branden Robinson" <branden@debian.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17getrpcent_r.3: tfixAlejandro Colomar1-1/+1
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17memusage.1: ffixAlejandro Colomar1-1/+3
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17log1p.3: pfixAlejandro Colomar1-2/+2
Reported-by: Helge Kreutzmann <debian@helgefjell.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17listmount.2: Fix off-by-one bug in description about continuing the iterationJeff Layton1-1/+1
The "+1" is wrong, since the kernel already increments the last_id. Cc: Miklos Szeredi <miklos@szeredi.hu> Cc: Josef Bacik <josef@toxicpanda.com> Cc: Christian Brauner <brauner@kernel.org> Signed-off-by: Jeff Layton <jlayton@kernel.org> Message-ID: <20241113-main-v1-1-a6b738d56e55@kernel.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17printf.3: wfixKen Pizzini1-2/+5
Improve description of %a format. The description of the %a/%A specifiers in the printf(3) man page could stand some improvement. In particular, it is not clear from the current document what base is used for the "p±d" part of the format. It can be inferred from the nature of %a that the base should be a power of two. And it can be further inferred from the nature of hexadecimal floating-point literals in C (as specified by C99 and later) that the base must exactly be the number two, but it would be helpful for the printf(3) man page to state this explicitly. My first expectation when reading the man page was that the exponent would be taken in base 16; after experimentation my second thought was that it would be base FLT_RADIX (which is 2 on IEEE 754 floating-point systems, but 16 on S/390). Only by going back to the standard [1] could I determine that the exponent in p-notation must always be taken from a base of 2. Link: [1] POSIX.1-2024 <https://pubs.opengroup.org/onlinepubs/9799919799/functions/printf.html> Cc: Jonathan Wakely <jwakely@redhat.com> Signed-off-by: Ken Pizzini <ken@gnu.org> Message-ID: <b932f13642502e063ef139d57b8f3c496023bf4a.1731707666.git.ken@gnu.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-17printf.3: wfixKen Pizzini1-2/+2
Improve terminology in %a description The term "decimal point" does not technically apply when using bases other than 10; the more generic term is "radix point". Update the description of the a/A conversion specifier (i.e., for hexadecimal floating point output) in printf(3) to use this terminology. I do note that POSIX.1-2024 [1] does use the term "decimal-point character" here, but I still maintain that using "radix point" is a better term for that object in the %a description. (Confusingly, POSIX does refer to "radix character" in the descriptions of %f and %e, where reference to "decimal" instead of "radix" would actually make sense.) Link: [1] <https://pubs.opengroup.org/onlinepubs/9799919799/functions/printf.html> Signed-off-by: Ken Pizzini <ken@gnu.org> Message-ID: <db91cc6f-93cc-4e99-806c-7a8b86232848@vagg4fs7.msa.explicate.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-14lsearch.3: Dereference 'nmemb' pointerAlejandro Colomar1-2/+2
nmemb is a pointer, so it needs to be dereferenced to calculate the size of the array. Reported-by: Martin Uecker <uecker@tugraz.at> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-13pthread_cond_init.3: tfixAlejandro Colomar1-1/+1
Reported-by: Antti Antinoja <antti@c1.fi> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-13rtnetlink.7: Document struct ifa_cacheinfoAlex Henrie1-1/+18
struct ifa_cacheinfo contains the address's creation time, update time, preferred lifetime remaining, and valid lifetime remaining. Link: <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/if_addr.h?h=v6.11#n60> Cc: <netdev@vger.kernel.org> Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Message-ID: <20241111062205.207027-1-alexhenrie24@gmail.com> Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-13mremap.2: Update information about MREMAP_DONTUNMAP restrictionsAlex Henrie1-1/+7
Link: <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a4609387859f0281951f5e476d9f76d7fb9ab321> Cc: Brian Geffon <bgeffon@google.com> Cc: <linux-mm@kvack.org> Signed-off-by: Alex Henrie <alexhenrie24@gmail.com> Message-ID: <20241111061139.206404-1-alexhenrie24@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-06bind.2: move EADDRNOTAVAIL to general errorsPhilipp Takacs1-4/+4
EADDRNOTAVAIL is not a socket specific error Message-ID: <eee2fe5c6c3d6203e1e528a998b0de2c.philipp@bureaucracy.de> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-05fanotify_mark.2, fanotify.7: Update documentation of fanotify w.r.t fsidAmir Goldstein2-6/+32
Clarify the conditions for getting the -EXDEV and -ENODEV errors. Signed-off-by: Amir Goldstein <amir73il@gmail.com> Reviewed-by: Jan Kara <jack@suse.cz> Message-ID: <20241105144939.181820-1-amir73il@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-05pthread_cancel.3: tfixAlejandro Colomar1-1/+1
Reported-by: Jona Christopher Sahnwaldt <jcsahnwaldt@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-03man/: EXAMPLES: Fix includesAlejandro Colomar6-2/+6
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-03pdfman.1: srcfixAlejandro Colomar1-1/+0
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-03src/bin/pdfman, scripts/bash_aliases, pdfman.1: Make pdfman a standalone ↵Alejandro Colomar1-0/+25
program, and add a manual page Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-03src/bin/mansect, mansect.1: Add program and its manual pageAlejandro Colomar1-0/+64
Preprocess with preconv(1). This doesn't process the pages in a significant way, and has the benefit that it writes the name of the pages in the output. Cc: "G. Branden Robinson" <branden@debian.org> Cc: Colin Watson <cjwatson@debian.org> Cc: <groff@gnu.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-01signal.7: Better description for SIGFPEVincent Lefevre1-1/+1
SIGFPE has comment "Floating-point exception", which corresponds to the FPE acronym. But this is misleading as this signal may also be generated by an integer division by 0. Change it to "Erroneous arithmetic operation" from POSIX. Note: the GNU C Library manual says "fatal arithmetic error". Link: <https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/signal.h.html> Link: <https://www.gnu.org/software/libc/manual/html_node/Program-Error-Signals.html> Signed-off-by: Vincent Lefevre <vincent@vinc17.net> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-01dup.2: ERRORS: Add ENOMEMLevi Zim1-0/+3
dup2(2) could return ENOMEM under extreme condition. For example, when sysctl fs.nr_open=2147483584, and RLIMIT_NOFILE is also 2147483584. The following program fails with ENOMEM: int main(void) { if (dup2(0, 2000000000) == -1) err(1, "dup2"); return 0; } This ENOMEM comes from an allocation error here: <https://elixir.bootlin.com/linux/v6.1/source/mm/util.c#L596> ENOMEM is already documented for open(2). Signed-off-by: Levi Zim <rsworktech@outlook.com> [alx: tweak commit message] Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-11-01bind.2: ERRORS: Document possible errors from protocolLucas Culverhouse1-0/+2
When looking through the errors of socket(2) I noticed that it specifies the selected underlying protocol may extend the potential errors returned. For example, using AF_PACKET and SOCK_RAW can return EPERM if the user does not have CAP_NET_RAW or uid 0 (this is all fully documented). However, AF_PACKET and SOCK_RAW extend the potential errors returned from bind(2) as well. For example, calling bind(2) with an invalid sll_ifindex set on the sock_addr passed in will return ENODEV. While this possibility is documented in the raw(7) manual page, the bind(2) manual page does not mention that its potential set of errors can be extended by the underlying protocol. This patch simply duplicates the relevant language from the socket(2) manual page to the bind(2) manual page. It is possible further extensions for send(2), recv(2), setsockopt(2), etc. are also undocumented, but I have not yet verified this. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-09-08timespec_get.3, timespec_getres.3: Add page and link pageнаб2-0/+89
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Message-ID: <lacitlat2jwybavkgkmmsxfbzcbz532uihejn5k2boe2x5eyyy@tarta.nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-09-01console_codes.4, inode.7: srcfixG. Branden Robinson2-3/+7
Prepare for `MR` macro migration. Rewrite man page cross references inside tbl(1) text blocks to use man(7) macros instead of troff(1) font selection escape sequences. $ cat fix-man-page-refs-in-tbl-tables-1.sed # Rewrite man page cross references inside tbl(1) text blocks to use # man(7) macros instead of troff(1) font selection escape sequences. /^\.\\"/b # Case: (handled in commit 9d21f97766, 2024-07-27) # T{ # See \fBchown\fP(2) for # T} /T{$/,/^T}/s/ \\fB\([^\\]*\)\\fP\(([0-9][a-z]*)\) /\ .BR \1 \2\ / # Case: # T{ # the map that is loaded by the utility \fBmapscrn\fP(8). # T} /T{$/,/^T}/s/ \\fB\([^\\]*\)\\fP\(([0-9][a-z]*)\)\([^0-9a-z]\+\)$/\ .BR \1 \2\3/ # Case: # T{ # by \fBxterm\fP(1)'s \fBhpLowerleftBugCompat\fP resource). # T} /T{$/,/^T}/s/ \\fB\([^\\]*\)\\fP\(([0-9][a-z]*)\)\([^ ]\+\) \(.*\)/\ .BR \1 \2\3\ \4/ Signed-off-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Message-ID: <20240901032603.khxdcqiqc2pxooky@illithid> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-09-01lirc.4: srcfixG. Branden Robinson1-1/+3
Prepare for `MR` macro migration. Migrate man page cross references in "SEE ALSO" section from using font selection escape sequences to font alternation macros to set man page cross references. This is an oddball case where `\-` appears in the man page title and, for no obvious reason, a nonbreaking space escape sequence was applied between list items. (I can _guess_ why: someone was trying to defeat line adjustment, and didn't notice that they were trying to do so right before a paragraph break, so adjustment wouldn't have happened anyway.) Signed-off-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Message-ID: <20240901032556.mmrwd27rpr3zzb5s@illithid> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-09-01suffixes.7: srcfixG. Branden Robinson1-3/+15
Prepare for `MR` macro migration. Migrate man page cross references in table rows from using font selection escape sequences to font alternation macros to set man page cross references. These are a handful of cases that made a sed(1)-scripted migration ordering-dependent with its substitution ('s') commands. Signed-off-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Message-ID: <20240901032548.olkeoqjwpj76h42b@illithid> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-09-01utmp.5: srcfixG. Branden Robinson1-4/+11
Prepare for `MR` macro migration. Migrate man page cross references in unfilled examples from using font selection escape sequences to font alternation macros to set man page cross references. Signed-off-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Message-ID: <20240901032530.wrvbtb4wisgnkcns@illithid> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-09-01utmp.5: srcfixG. Branden Robinson1-1/+1
Set init(1) man page cross references like all the others in the page. Signed-off-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Message-ID: <20240901032523.qsfzdca46pcr524f@illithid> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-09-01wctrans.3, wctype.3: srcfixG. Branden Robinson2-20/+22
Convert from unfilled text using `nf` and `fi` requests to `IP` macro calls and tbl(1) tables. This change increases the item indentation slightly, as I elected not to specify one in the `IP` calls. The content still fits easily in an 80-column terminal. The reason for this change is to make the man page cross references susceptible to scripted rewriting (and ultimately to make them hyperlinkable). See, e.g., <https://lore.kernel.org/linux-man/20240831182027.b6pduwkthk5b3tcf@illithid/>. Signed-off-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Message-ID: <20240901032513.afty634vpnhe24zi@illithid> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-09-01namespaces.7: srcfixG. Branden Robinson1-4/+12
Use *roff requests to shut off adjustment and hyphenation for the rightmost column of the table, which uses text blocks. (In man pages, use of such requests _outside_ of tbl(1) text blocks remains discouraged by groff(1) and mandoc(1) developers.) Also break filled input lines less aggressively. Signed-off-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Message-ID: <20240901032505.ralmc2yuwd4psgos@illithid> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-09-01namespaces.7: ffixG. Branden Robinson1-0/+2
Put a paragraph break above the table to ensure separation from the preceding paragraph with the man(7) macros from groff >= 1.23 and forthcoming mandoc(1) release. Draw a horizontal rule under the column headings. Link: <https://cvsweb.bsd.lv/mandoc/man_term.c?rev=1.241&content-type=text/x-cvsweb-markup> Signed-off-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Message-ID: <20240901032453.3dmhjz7urk2saizq@illithid> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-31namespaces.7: ffixG. Branden Robinson1-2/+2
Prepare for `MR` macro migration. Let the table columns breathe again. Signed-off-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Message-ID: <20240831182057.u6mza33uhz55j3xd@illithid> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-31man/: srcfixG. Branden Robinson3-6/+6
Prepare for `MR` macro migration. Explicitly set the width of certain table columns so that they don't change or cause "can't break line" warnings from troff(1) when the rows are converted to use text blocks. Signed-off-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Message-ID: <20240831182045.kvhjjxbztnhudjga@illithid> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-31man/: srcfixG. Branden Robinson2-62/+186
Prepare for `MR` macro migration. Migrate table entries from using font selection escape sequences to font alternation macros to set man page cross references. This change was automatically driven by the following sed(1) script. $ cat fix-man-page-refs-in-tbl-tables-2.sed # Rewrite man page cross references on tbl(1) rows that # precede text blocks to themselves use text blocks, # and convert them to use man(7) macros # instead of troff(1) font selection escape sequences # (which cannot be done outside a text block). /^\.\\"/b /^\\fB[^\\]*\\fP([0-9][a-z]*).*T{/s/\\fB\([^\\]*\)\\fP\(([0-9][a-z]*)\)\(.*\)/T{\ .BR \1 \2\ T}\3/ Signed-off-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Message-ID: <20240831182027.b6pduwkthk5b3tcf@illithid> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-30tzset.3: CAVEATS: Document the inability of tzset() to report errorsAlejandro Colomar1-0/+3
NetBSD has tzalloc(3), which returns NULL to report invalid tme zones. Cc: Paul Eggert <eggert@cs.ucla.edu> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-30ctime.3: EXAMPLES: Document how to detect invalid or ambiguous timesAlejandro Colomar1-1/+77
This example documents how to detect some corner cases of mktime(3), such as DST transitions and other jumps in the calendar. Link: <https://www.redhat.com/en/blog/brief-history-mktime> Cc: DJ Delorie <dj@redhat.com> Cc: Carlos O'Donell <carlos@redhat.com> Cc: Paul Eggert <eggert@cs.ucla.edu> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-30ctime.3: CAVEATS: Add note about tm_isdst handling in mktime(3)DJ Delorie1-0/+39
Handling of "invalid" values for tm_isdst is not clearly specified in any standard, and implementations vary as to how they react when you (for example) pass tm_isdst=1 at a time when DST is not in effect. Add a note about this, and a suggestion for a workaround. I go into further detail about this in the link below. Link: <https://www.redhat.com/en/blog/brief-history-mktime> Cc: Paul Eggert <eggert@cs.ucla.edu> Cc: Carlos O'Donell <carlos@redhat.com> Signed-off-by: DJ Delorie <dj@redhat.com> Message-ID: <xncylqiznb.fsf@greed.delorie.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-29pipe.7: Document change to default pipe size when soft limit is exceededKienan Stewart1-1/+3
See Linux commit 46c4c9d1beb7f5b4cec4dd90e7728720583ee348 ("pipe: increase minimum default pipe size to 2 pages"). Cc: Alex Xu (Hello71) <alex_y_xu@yahoo.ca> Signed-off-by: Kienan Stewart <kstewart@efficios.com> Message-ID: <20240829204448.2027276-2-kstewart@efficios.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-29pipe.7: Reference potential lower default in "Pipe capacity" sub-sectionKienan Stewart1-0/+3
The default capacity of pipes is two pages for users exceeding the pipe-user-pages-soft limit. Before Linux 5.14, it was only one page. Signed-off-by: Kienan Stewart <kstewart@efficios.com> Message-ID: <20240829154304.2010305-2-kstewart@efficios.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-28dlinfo.3: Document the RTLD_DI_PHDR requestFlorian Weimer1-1/+14
First added in glibc 2.36, backported upstream to glibc 2.34, so mention 2.34.1 for the first version. Signed-off-by: Florian Weimer <fweimer@redhat.com> Message-ID: <87o75chpwb.fsf@oldenburg.str.redhat.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-28statx.2: Document AT_EMPTY_PATH allows using NULL instead of "" for pathnameXi Ruoyao1-6/+13
Link: <https://git.kernel.org/torvalds/c/0ef625bba6fb> Cc: Mateusz Guzik <mjguzik@gmail.com> Cc: Christian Brauner <brauner@kernel.org> Cc: <linux-fsdevel@vger.kernel.org> Signed-off-by: Xi Ruoyao <xry111@xry111.site> Message-ID: <20240827102518.43332-2-xry111@xry111.site> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-27splice.2: EXAMPLES: Add example programAlejandro Colomar1-1/+50
This example demonstrates the use of off_out, which the tee(2) example doesn't use. Here's a run of the program: $ gcc -Wall -Wextra splice.c $ ./a.out New offset is 22 $ echo $? 0 $ hd out 00000000 00 00 00 00 00 00 00 00 00 00 48 65 6c 6c 6f 2c |..........Hello,| 00000010 20 77 6f 72 6c 64 | world| 00000016 Link: <https://lore.kernel.org/linux-man/4xw464u2munxbgujopgfggxvnvgxa2b5lh35eriaeziapaa4uq@z6jmdim6f5mo/T/#t> Co-developed-by: Absee Seeab <doesnt.look.like.temp.mail@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-27splice.2: off_{in,out} are updated by splice(2)Alejandro Colomar1-1/+4
Link: <https://lore.kernel.org/linux-man/4xw464u2munxbgujopgfggxvnvgxa2b5lh35eriaeziapaa4uq@z6jmdim6f5mo/T/#t> Reported-by: Absee Seeab <doesnt.look.like.temp.mail@gmail.com> Co-developed-by: Absee Seeab <doesnt.look.like.temp.mail@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-24ctime.3: Move NOTES to a subsection within CAVEATSAlejandro Colomar1-2/+2
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-23ctime.3: Document how to check errors from mktime(3)Alejandro Colomar1-1/+103
-1 is a valid successful time_t, for one second before the Epoch. And mktime(3) is allowed (like most libc calls) to set errno on success. This makes it impossible to determine errors from the return value or errno. ISO C specifies that tp->tm_wday is unmodified after a failed call, and puts an example where this is used to determine errors. It is indeed the only way to check for errors from this call. Document this detail in the RETURN VALUE section, add a CAVEATS section that warns about this, and write an example program that shows how to properly call this function. Most code I've been able to find in several search engines either doesn't check for errors after mktime(3), or checks them incorrectly, so this documentation should help fix those. This is guaranteed since ISO C23 and POSIX.1-2024. Prior to those standards, there was no standard way to check for errors. However, there are no known implementations that do not conform to this. Link: <https://lore.kernel.org/linux-man/20240823131024.GD2713@cventin.lip.ens-lyon.fr/T/#t> Link: <https://lore.kernel.org/linux-man/6un6baaq5tez23irtycuvzqtuh7a4sdrf2px7tnyb3y6iqoxmq@2ofln4cd27ep/T/#t> Link: <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3147.txt> Link: <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3148.doc> Link: <https://austingroupbugs.net/view.php?id=1614> Link: <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf#subsubsection.7.29.2.3> Reported-by: Paul Eggert <eggert@cs.ucla.edu> Cc: Vincent Lefevre <vincent@vinc17.net> Cc: DJ Delorie <dj@redhat.com> Cc: Carlos O'Donell <carlos@redhat.com> Cc: Xi Ruoyao <xry111@xry111.site> Cc: Brian Inglis <Brian.Inglis@SystematicSW.ab.ca> Cc: "Robert C. Seacord" <rcseacord@gmail.com> Cc: Jens Gustedt <jens.gustedt@inria.fr> Cc: Robert Elz <kre@munnari.oz.au> Cc: Andrew Josey <ajosey@opengroup.org> Cc: Geoff Clare <gwc@opengroup.org> Cc: Hans Åberg <haberg-1@telia.com> Cc: GNU C Library <libc-alpha@sourceware.org> Cc: Austin Group <austin-group-l@opengroup.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2: Tweak after making sashimi of this pageAlejandro Colomar1-6/+5
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_RESTRICT_KEYRING.2const: Tweak after splitAlejandro Colomar1-44/+15
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_RESTRICT_KEYRING.2const: Split KEYCTL_RESTRICT_KEYRING from ↵Alejandro Colomar2-91/+140
keyctl(2) Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_DH_COMPUTE.2const: Tweak after splitAlejandro Colomar1-81/+46
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_DH_COMPUTE.2const: Split KEYCTL_DH_COMPUTE from keyctl(2)Alejandro Colomar2-278/+317
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_GET_PERSISTENT.2const: Tweak after splitAlejandro Colomar1-39/+17
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_GET_PERSISTENT.2const: Split KEYCTL_GET_PERSISTENT from ↵Alejandro Colomar2-76/+122
keyctl(2) Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_INVALIDATE.2const: Tweak after splitAlejandro Colomar1-25/+7
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_INVALIDATE.2const: Split KEYCTL_INVALIDATE from keyctl(2)Alejandro Colomar2-42/+89
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_SESSION_TO_PARENT.2const: Tweak after splitAlejandro Colomar1-32/+17
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_SESSION_TO_PARENT.2const: Split KEYCTL_SESSION_TO_PARENT ↵Alejandro Colomar2-60/+108
from keyctl(2) Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_GET_SECURITY.2const: Tweak after splitAlejandro Colomar1-34/+16
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_GET_SECURITY.2const: Split KEYCTL_GET_SECURITY from keyctl(2)Alejandro Colomar2-62/+107
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_ASSUME_AUTHORITY.2const: Tweak after splitAlejandro Colomar1-31/+13
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_ASSUME_AUTHORITY.2const: Split KEYCTL_ASSUME_AUTHORITY from ↵Alejandro Colomar2-80/+125
keyctl(2) Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_SET_TIMEOUT.2const: Tweak after splitAlejandro Colomar1-28/+10
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_SET_TIMEOUT.2const: Split KEYCTL_SET_TIMEOUT from keyctl(2)Alejandro Colomar2-47/+94
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_SET_REQKEY_KEYRING.2const: Tweak after splitAlejandro Colomar1-28/+8
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_SET_REQKEY_KEYRING.2const: Split KEYCTL_SET_REQKEY_KEYRING ↵Alejandro Colomar2-99/+144
from keyctl(2) Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_INSTANTIATE.2const: Tweak after splitAlejandro Colomar1-77/+40
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_INSTANTIATE.2const, KEYCTL_INSTANTIATE_IOV.2const, ↵Alejandro Colomar5-170/+242
KEYCTL_NEGATE.2const, KEYCTL_REJECT.2const: Split KEYCTL_INSTANTIATE*, KEYCTL_NEGATE, KEYCTL_REJECT from keyctl(2) Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_READ.2const: Tweak after splitAlejandro Colomar1-40/+15
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_READ.2const: Split KEYCTL_READ from keyctl(2)Alejandro Colomar2-75/+121
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_SEARCH.2const: Tweak after splitAlejandro Colomar1-42/+23
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_SEARCH.2const: Split KEYCTL_SEARCH from keyctl(2)Alejandro Colomar2-79/+125
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_UNLINK.2const: Tweak after splitAlejandro Colomar1-30/+9
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_UNLINK.2const: Split KEYCTL_UNLINK from keyctl(2)Alejandro Colomar2-39/+88
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_LINK.2const: Tweak after splitAlejandro Colomar1-38/+11
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_LINK.2const: Split KEYCTL_LINK from keyctl(2)Alejandro Colomar2-68/+117
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_CLEAR.2const: Tweak after splitAlejandro Colomar1-22/+4
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_CLEAR.2const: Split KEYCTL_CLEAR from keyctl(2)Alejandro Colomar2-32/+79
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_DESCRIBE.2const: Tweak after splitAlejandro Colomar1-36/+17
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_DESCRIBE.2const: Split KEYCTL_DESCRIBE from keyctl(2)Alejandro Colomar2-88/+133
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_SETPERM.2const: Tweak after splitAlejandro Colomar1-86/+103
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_SETPERM.2const: Split KEYCTL_SETPERM from keyctl(2)Alejandro Colomar2-215/+262
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_CHOWN.2const: Tweak after splitAlejandro Colomar1-29/+9
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_CHOWN.2const: Split KEYCTL_CHOWN from keyctl(2)Alejandro Colomar2-45/+91
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_REVOKE.2const: Tweak after splitAlejandro Colomar1-19/+3
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_REVOKE.2const: Split KEYCTL_REVOKE from keyctl(2)Alejandro Colomar2-35/+80
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_UPDATE.2const: Tweak after splitAlejandro Colomar1-34/+12
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_UPDATE.2const: Split KEYCTL_UPDATE from keyctl(2)Alejandro Colomar2-43/+90
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_JOIN_SESSION_KEYRING.2const: Tweak after splitAlejandro Colomar1-26/+7
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_JOIN_SESSION_KEYRING.2const: Split ↵Alejandro Colomar2-52/+96
KEYCTL_JOIN_SESSION_KEYRING from keyctl(2) Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21KEYCTL_GET_KEYRING_ID.2const: Tweak after splitAlejandro Colomar1-42/+21
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2, KEYCTL_GET_KEYRING_ID.2const: Split KEYCTL_GET_KEYRING_ID from ↵Alejandro Colomar2-120/+165
keyctl(2) Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21keyctl.2: Tweak in preparation for sashimiAlejandro Colomar1-14/+5
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21bdflush.2, syscalls.2: bdflush was removedнаб2-79/+28
There's no point documenting this syscall at any point in time, because it changed constantly. A post-mortem summary I believe to be comprehensive is included below. The #include <sys/kdaemon.h> was removed in glibc 2.23: commit eed3e1eb79bcfa9b52609fd875fa2d522e2d6bce Author: Joseph Myers <joseph@codesourcery.com> Date: Mon Dec 14 22:52:15 2015 +0000 Make obsolete syscall wrappers into compat symbols (bug 18472). * bdflush: in Linux 2.6, does nothing if present. [...] generated for such aliases. Those five syscalls are then made into compat symbols (obsoleted in glibc 2.23, so future ports won't have these symbols at all), with the header <sys/kdaemon.h> declaring bdflush being removed. When we move to 3.2 as minimum kernel version, the same can be done for nfsservctl (removed in Linux 3.1) as well. [...] Appears in 1.1.3 (func=0 turns the calling process into the bdflush daemon, func=1 return sync_old_buffers();, func>=2 is parameters): Author: Linus Torvalds <torvalds@linuxfoundation.org> Import 1.1.3 +/* This is the interface to bdflush. As we get more sophisticated, we can + * pass tuning parameters to this "process", to adjust how it behaves. If you + * invoke this again after you have done this once, you would simply modify + * the tuning parameters. We would want to verify each parameter, however, + * to make sure that it is reasonable. */ + +asmlinkage int sys_bdflush(int func, int data) +{ bdflush() is just a kernel thread, and func 0 is just return 0; since 1.3.50: Author: Linus Torvalds <torvalds@linuxfoundation.org> Import 1.3.50 - /* Basically func 0 means start, 1 means read param 1, 2 means write param 1, etc */ + /* Basically func 1 means read param 1, 2 means write param 1, etc */ if (func >= 2) { i = (func-2) >> 1; if (i < 0 || i >= N_PARAM) @@ -1930,13 +1845,32 @@ asmlinkage int sys_bdflush(int func, long data) bdf_prm.data[i] = data; return 0; }; + + /* Having func 0 used to launch the actual bdflush and then never + return (unless explicitly killed). We return zero here to + remain semi-compatible with present update(8) programs. */ + + return 0; +} + +/* This is the actual bdflush daemon itself. It used to be started from + * the syscall above, but now we launch it ourselves internally with + * kernel_thread(...) directly after the first thread in init/main.c */ + +int bdflush(void * unused) { func 1 is actually exit(0) since 2.3.23pre1: Author: Linus Torvalds <torvalds@linuxfoundation.org> Import 2.3.23pre1 if (func == 1) { + /* do_exit directly and let kupdate to do its work alone. */ + do_exit(0); +#if 0 /* left here as it's the only example of lazy-mm-stuff used from + a syscall that doesn't care about the current mm context. */ fund!=0 is a return 0 since 2.5.12: Author: Andrew Morton <akpm@zip.com.au> Date: Mon Apr 29 23:52:10 2002 -0700 [PATCH] writeback from address spaces [ I reversed the order in which writeback walks the superblock's dirty inodes. It sped up dbench's unlink phase greatly. I'm such a sleaze ] The core writeback patch. Switches file writeback from the dirty buffer LRU over to address_space.dirty_pages. - The buffer LRU is removed - The buffer hash is removed (uses blockdev pagecache lookups) - The bdflush and kupdate functions are implemented against address_spaces, via pdflush. [...] Deprecated since 2.5.52: Author: Andrew Morton <akpm@digeo.com> Date: Sat Dec 14 03:16:29 2002 -0800 [PATCH] deprecate use of bdflush() Patch from Robert Love <rml@tech9.net> We can never get rid of it if we do not deprecate it - so do so and print a stern warning to those who still run bdflush daemons. Removed outright in 5.15-rc1: commit b48c7236b13cb5ef1b5fdf744aa8841df0f7b43a Author: Eric W. Biederman <ebiederm@xmission.com> Date: Tue Jun 29 15:11:44 2021 -0500 exit/bdflush: Remove the deprecated bdflush system call The bdflush system call has been deprecated for a very long time. Recently Michael Schmitz tested[1] and found that the last known caller of of the bdflush system call is unaffected by it's removal. Since the code is not needed delete it. [1] https://lkml.kernel.org/r/36123b5d-daa0-6c2b-f2d4-a942f069fd54@gmail.com Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Message-ID: <ynknns52cczu2bxtazbmub3xxe62a2hajkod2qephnby5dqt7o@tarta.nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21uretprobe.2: Add pageJiri Olsa1-0/+47
Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: Song Liu <songliubraving@fb.com> Cc: Yonghong Song <yhs@fb.com> Cc: John Fastabend <john.fastabend@gmail.com Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: "Borislav Petkov (AMD)" <bp@alien8.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com> Cc: Deepak Gupta <debug@rivosinc.com> Acked-by: Andrii Nakryiko <andrii@kernel.org> Reviewed-by: Alejandro Colomar <alx@kernel.org> Signed-off-by: Jiri Olsa <jolsa@kernel.org> Message-ID: <20240611112158.40795-10-jolsa@kernel.org> [alx: minor tweaks] Acked-by: Jiri Olsa <jolsa@kernel.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21regex.3: *preg is initialized with regcomp(), not regexec()Dirk Gouders1-1/+1
Fixes: 1838a55edd6c47cb ("regex.3: Desoupify regexec() description") Signed-off-by: Dirk Gouders <dirk@gouders.net> Message-ID: <20240813185011.3806-1-dirk@gouders.net> Reviewed-by: наб <nabijaczleweli@nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21syscalls.2: Expand the Notes column to the right marginнаб1-1/+1
This prevents rows breaking when they could just go further to the right Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Message-ID: <qruxkxy2wtmmaohagimcanhyoyfvmtzn3zmbasxqsgn5tvjfgc@tarta.nabijaczleweli.xyz> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21fmod.3: Fix exampleAlejandro Colomar1-1/+1
Reported-by: Morten Welinder <mwelinder@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21nextup.3: wfix + tfixVincent Lefevre1-3/+4
The current "If x is 0" condition is a bit misleading because "is" is not the equality test (just like when saying "x is NaN") and 0 as a FP number stands for +0, while this condition should apply to both -0 and +0. Replace this condition by "If x is +0 or -0". Replace "Nan" by "NaN" (typography used everywhere else). Cc: Dave Kemper <saint.snit@gmail.com> Cc: "G. Branden Robinson" <branden@debian.org> Cc: Damian McGuckin <damianm@esi.com.au> Cc: John Gardner <gardnerjohng@gmail.com> Signed-off-by: Vincent Lefevre <vincent@vinc17.net> Message-ID: <20240808115610.GC2669@cventin.lip.ens-lyon.fr> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21sigaction.2: Improve wording and add an example in the BUGS sectionMikołaj Kołek1-1/+17
This patch clears up the wording of the first part of the BUGS section of the sigaction(2) manual page. Currently, it is very unclear when exactly the bug can occur, and there is no example, which I aim to fix. The text of the patch is partially based on the BUGS section of the signal(2) manual page. I also attach a C program that, when run on an x86 Linux computer, shows that my example behaves like I say it does. The code runs the int instruction for each value from 0 to 255 with all registers set to 0 to show that all fields of the siginfo_t besides si_signo and si_code equal zero. The program is based on the attachment to bug 205831 on the kernel bugtracker which first dealt with this issue, which you can find here: <https://bugzilla.kernel.org/show_bug.cgi?id=205831>. This is the code of the test program: #define CR "\n\t" #define _GNU_SOURCE 1 #include <stdbool.h> #include <signal.h> #include <stdint.h> #include <stdio.h> static siginfo_t siginfo; void handler(int sig, siginfo_t *info, void *ucontext) { ucontext_t *uc = (ucontext_t*) ucontext; const uint8_t *pc = (const uint8_t*) uc->uc_mcontext.gregs[REG_RIP]; siginfo = *info; // skip the faulting instruction if(*pc == 0xCC || *pc == 0xF1) uc->uc_mcontext.gregs[REG_RIP] += 1; else if(*pc == 0xCD) uc->uc_mcontext.gregs[REG_RIP] += 2; else ; //assume the PC has already been advanced over the fault } static __attribute__((noinline)) void call_int(unsigned char argument) { asm volatile( "leaq 1f(%%rip), %%rcx" CR "addq %%rcx, %%rax" CR "xor %%rbx, %%rbx" CR "xor %%rcx, %%rcx" CR "xor %%rdx, %%rdx" CR "xor %%rsi, %%rsi" CR "xor %%rdi, %%rdi" CR "xor %%rbp, %%rbp" CR "xor %%r8, %%r8" CR "xor %%r9, %%r8" CR "xor %%r10, %%r10" CR "xor %%r11, %%r11" CR "xor %%r12, %%r12" CR "xor %%r13, %%r13" CR "xor %%r14, %%r14" CR "xor %%r15, %%r15" CR "call *%%rax" CR "jmp 2f" CR ".p2align 3" "\n1:" CR ".irp i,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15" CR ".irp j,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15" CR "xor %%rax, %%rax" CR ".byte 0xCD,(\\i*16 + \\j)" CR "ret" CR ".p2align 3" CR ".endr" CR ".endr" "\n2:" : : "a" (argument * 8) : "rbx", "rcx", "rdx", "rsi", "rdi", "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15" ); } int main(void) { struct sigaction sa = { 0 }; sa.sa_sigaction = &handler; sa.sa_flags = SA_SIGINFO | SA_RESTART; sigaction(SIGSEGV, &sa, 0); sigaction(SIGTRAP, &sa, 0); for(int i = 0; i < 256; i++) { call_int(i); bool others_zeroed = ( siginfo.si_errno == 0 && siginfo.si_pid == 0 && siginfo.si_uid == 0 && siginfo.si_status == 0 && siginfo.si_utime == 0 && siginfo.si_stime == 0 && siginfo.si_value.sival_ptr == 0 && siginfo.si_value.sival_int == 0 && siginfo.si_int == 0 && siginfo.si_ptr == 0 && siginfo.si_overrun == 0 && siginfo.si_timerid == 0 && siginfo.si_addr == 0 && siginfo.si_band == 0 && siginfo.si_fd == 0 && siginfo.si_addr_lsb == 0 && siginfo.si_lower == 0 && siginfo.si_upper == 0 && siginfo.si_pkey == 0 && siginfo.si_call_addr == 0 && siginfo.si_syscall == 0 && siginfo.si_arch == 0 ); printf("int $0x%02x: sig=%2d code=%04x others_zeroed=%i\n", i, siginfo.si_signo, siginfo.si_code, others_zeroed ); } return 0; } Link: <https://bugzilla.kernel.org/show_bug.cgi?id=205831> Cc: Zack Weinberg <zackw@panix.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: Borislav Petkov <bp@alien8.de> Cc: "H. Peter Anvin" <hpa@zytor.com> Signed-off-by: Mikołaj Kołek <kolek.mikolaj@gmail.com> Message-ID: <CAHGiy69OQ78x42+6iE7HqAiOaPCscn8fs=VNaxFMNSR7Q9R-mw@mail.gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21tzset.3: srcfix (semantic newlines)Alejandro Colomar1-2/+3
Reported-by: Vincent Lefevre <vincent@vinc17.net> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21epoll.7: Clarify the event distribution under edge-triggered modeAndy Pan1-1/+2
For the moment, the edge-triggered epoll generates an event for each receipt of a chunk of data, that is to say, epoll_wait() will return and tell us a monitored file descriptor is ready whenever there is a new activity on that FD since we were last informed about that FD. This is not a real _edge_ implementation for epoll, but it's been working this way for years and plenty of projects are relying on it to eliminate the overhead of one system call of read(2) per wakeup event. There are several renowned open-source projects relying on this feature for notification function (with eventfd): register eventfd with EPOLLET and avoid calling read(2) on the eventfd when there is wakeup event (eventfd being written). Examples: nginx [1], netty [2], tokio [3], libevent [4], ect. [5] These projects are widely used in today's Internet infrastructures. Thus, changing this behavior of epoll ET will fundamentally break them and cause a significant negative impact. Linux has changed it for pipe before [6], breaking some Android libraries, which had got "reverted" somehow. [7] [8] Nevertheless, the paragraph in the manual pages describing this characteristic of epoll ET seems ambiguous, I think a more explict sentence should be used to clarify it. We're improving the notification mechanism for libuv recently by exploiting this feature with eventfd, which brings us a significant performance boost. [9] Therefore, we (as well as the maintainers of nginx, netty, tokio, etc.) would have a sense of security to build an enhanced notification function based on this feature if there is a guarantee of retaining this implementation of epoll ET for the backward compatibility in the man pages. [1]: https://github.com/nginx/nginx/blob/efc6a217b92985a1ee211b6bb7337cd2f62deb90/src/event/modules/ngx_epoll_module.c#L386-L457 [2]: https://github.com/netty/netty/pull/9192 [3]: https://github.com/tokio-rs/mio/blob/309daae21ecb1d46203a7dbc0cf4c80310240cba/src/sys/unix/waker.rs#L111-L143 [4]: https://github.com/libevent/libevent/blob/525f5d0a14c9c103be750f2ca175328c25505ea4/event.c#L2597-L2614 [5]: https://github.com/libuv/libuv/pull/4400#issuecomment-2123798748 [6]: https://lkml.iu.edu/hypermail/linux/kernel/2010.1/04363.html [7]: https://github.com/torvalds/linux/commit/3a34b13a88caeb2800ab44a4918f230041b37dd9 [8]: https://github.com/torvalds/linux/commit/3b844826b6c6affa80755254da322b017358a2f4 [9]: https://github.com/libuv/libuv/pull/4400#issuecomment-2103232402 Signed-off-by: Andy Pan <i@andypan.me> Cc: <linux-api@vger.kernel.org> Cc: Michael Kerrisk <mtk.manpages@gmail.com> Message-ID: <20240801-epoll-et-desc-v5-1-7fcb9260a3b2@andypan.me> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21landlock.7: Document Landlock ABI version 5 (IOCTL)Günther Noack1-3/+50
Landlock ABI 5 restricts ioctl(2) on device files. Closes: <https://github.com/landlock-lsm/linux/issues/39> Reviewed-by: Mickaël Salaün <mic@digikod.net> Signed-off-by: Günther Noack <gnoack@google.com> Message-ID: <20240723101917.90918-3-gnoack@google.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-08-21landlock.7, landlock_*.2: Document Landlock ABI version 4Günther Noack3-15/+94
Landlock ABI 4 restricts bind(2) and connect(2) on TCP port numbers. The intent is to bring the man pages mostly in line with the kernel documentation again. I intentionally did not add networking support to the usage example in landlock.7 - I feel that in the long run, we would be better advised to maintain longer example code in the kernel samples. Closes: <https://github.com/landlock-lsm/linux/issues/32> Reviewed-by: Mickaël Salaün <mic@digikod.net> Signed-off-by: Günther Noack <gnoack@google.com> Message-ID: <20240723101917.90918-2-gnoack@google.com> Co-developed-by: Konstantin Meskhidze <konstantin.meskhidze@huawei.com> Signed-off-by: Konstantin Meskhidze <konstantin.meskhidze@huawei.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-31syscalls.2: srcfix (2/3)G. Branden Robinson1-65/+195
Migrate table entries from using font selection escape sequences to font alternation macros to set man page cross references. This change was automatically driven by the following sed(1) script. $ cat fix-syscall-table-2.sed \# Rewrite man page cross references on tbl(1) rows that precede text \# blocks to themselves use text blocks, and convert them to use man(7) \# macros instead of troff(1) font selection escape sequences (which \# cannot be done outside a text block). /^\.\\"/b /^\\fB[^\\]*\\fP([0-9][a-z]*).*T{/s/\\fB\([^\\]*\)\\fP\(([0-9][a-z]*)\)\(.*\)/T{\ .BR \1 \2\ T}\3/ Signed-off-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Message-ID: <20240727192752.hxxo4nl52qyskb2u@illithid> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-31syscalls.2: srcfix (1/3)G. Branden Robinson1-3/+9
Migrate table entries from using font selection escape sequences to font alternation macros to set man page cross references. This change was automatically driven by the following sed(1) script. $ cat fix-syscall-table-1.sed \# Rewrite man page cross references inside tbl(1) text blocks to use \# man(7) macros instead of troff(1) font selection escape sequences. /^\.\\"/b /T{$/,/^T}/s/ \\fB\([a-z0-9_][a-z0-9_]*\)\\fP\(([0-9][a-z]*)\) /\ .BR \1 \2\ / Signed-off-by: "G. Branden Robinson" <g.branden.robinson@gmail.com> Message-ID: <20240727192745.lt2oo34hw3limkls@illithid> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-31memccpy.3: Clarify that the delimiter is copiedAlejandro Colomar1-1/+3
Reported-by: Keith Thompson <Keith.S.Thompson@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-31io_submit.2: Document RWF_ATOMICJohn Garry1-0/+19
Document RWF_ATOMIC for asynchronous I/O. Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> Signed-off-by: John Garry <john.g.garry@oracle.com> Cc: <linux-fsdevel@vger.kernel.org> Cc: Jens Axboe <axboe@kernel.dk> Cc: Christoph Hellwig <hch@lst.de> Cc: Dave Chinner <dchinner@redhat.com> Cc: "Martin K. Petersen" <martin.petersen@oracle.com> Message-ID: <20240722095723.597846-4-john.g.garry@oracle.com> [alx: wfix; ffix] Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-31readv.2: Document RWF_ATOMIC flagHimanshu Madhani1-0/+65
Add RWF_ATOMIC flag description for pwritev2(). Signed-off-by: Himanshu Madhani <himanshu.madhani@oracle.com> [jpg: complete rewrite] Signed-off-by: John Garry <john.g.garry@oracle.com> Cc: <linux-fsdevel@vger.kernel.org> Cc: Jens Axboe <axboe@kernel.dk> Cc: Christoph Hellwig <hch@lst.de> Cc: Dave Chinner <dchinner@redhat.com> Cc: "Martin K. Petersen" <martin.petersen@oracle.com> Message-ID: <20240722095723.597846-3-john.g.garry@oracle.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org> [alx: semantic newlines; srcfix] Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-31statx.2: Document STATX_WRITE_ATOMICHimanshu Madhani1-0/+28
Add the text to the statx man page. Signed-off-by: Himanshu Madhani <himanshu.madhani@oracle.com> Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> Signed-off-by: John Garry <john.g.garry@oracle.com> Cc: <linux-fsdevel@vger.kernel.org> Cc: Jens Axboe <axboe@kernel.dk> Cc: Christoph Hellwig <hch@lst.de> Cc: Dave Chinner <dchinner@redhat.com> Cc: "Martin K. Petersen" <martin.petersen@oracle.com> Message-ID: <20240722095723.597846-2-john.g.garry@oracle.com> [alx: ffix] Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-23man/: ffixAlejandro Colomar936-944/+944
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-23strsep.3: Use CAVEATS instead of BUGSAlejandro Colomar1-1/+1
These are not bugs at all. It's a good API. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-23strsep.3: HISTORY: Relax portability concernsAlejandro Colomar1-3/+0
We already document that it's a BSD function, not in any standard. No need to worry programmers much more than that. We have STANDARDS for that. Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-23strsep.3: STANDARDS: It's available in the BSDs (as it originated there)Alejandro Colomar1-1/+1
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-22landlock_add_rule.2: ERRORS: Document missing reason for EINVALGünther Noack1-0/+10
This documents a missing reason for why EINVAL might be returned. The documented behavior exists since the first version of Landlock. Reviewed-by: Mickaël Salaün <mic@digikod.net> Signed-off-by: Günther Noack <gnoack@google.com> Message-ID: <20240719133801.3541732-5-gnoack@google.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-22landlock_create_ruleset.2: Update docs for landlock_ruleset_attrGünther Noack1-2/+32
This updates the documentation for struct landlock_ruleset_attr in line with the changed kernel documentation (see link below). Link: <https://lore.kernel.org/all/20240711165456.2148590-2-gnoack@google.com/> Reviewed-by: Mickaël Salaün <mic@digikod.net> Signed-off-by: Günther Noack <gnoack@google.com> Message-ID: <20240719133801.3541732-4-gnoack@google.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-22landlock.7, landlock_*.2: wfixGünther Noack4-12/+20
* Various wording fixes * List the same error code multiple times, if it can happen for multiple reasons. Reviewed-by: Mickaël Salaün <mic@digikod.net> Signed-off-by: Günther Noack <gnoack@google.com> Message-ID: <20240719133801.3541732-3-gnoack@google.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-22fanotify_init.2: Support for FA_* flags has been backported to LTS kernelsChuck Lever1-4/+4
Cc: <linux-fsdevel@vger.kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Message-ID: <20240713181548.38002-3-cel@kernel.org> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-22fanotify.7: Document changes backported to LTS kernelsChuck Lever1-1/+1
Cc: <linux-fsdevel@vger.kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Message-ID: <20240713181548.38002-4-cel@kernel.org> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-07-22fanotify_mark.2: Support for FA_* flags has been backported to LTS kernelsChuck Lever1-4/+4
Cc: <linux-fsdevel@vger.kernel.org> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Message-ID: <20240713181548.38002-2-cel@kernel.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>