]> git.ipfire.org Git - thirdparty/util-linux.git/log
thirdparty/util-linux.git
23 hours agochfn: improve man page
Christian Goeschel Ndjomouo [Fri, 16 Jan 2026 03:20:27 +0000 (22:20 -0500)] 
chfn: improve man page

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
23 hours agochfn: make comment more accurate
Christian Goeschel Ndjomouo [Thu, 15 Jan 2026 23:32:50 +0000 (18:32 -0500)] 
chfn: make comment more accurate

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
23 hours agochfn: fix minor grammar mistakes in comments
Christian Goeschel Ndjomouo [Thu, 15 Jan 2026 22:10:05 +0000 (17:10 -0500)] 
chfn: fix minor grammar mistakes in comments

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
23 hours agochfn: use true/false bool values for semantic clarity
Christian Goeschel Ndjomouo [Thu, 15 Jan 2026 04:14:21 +0000 (23:14 -0500)] 
chfn: use true/false bool values for semantic clarity

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
23 hours agochfn: use direct equality check for semantic clarity and readability
Christian Goeschel Ndjomouo [Wed, 14 Jan 2026 05:41:14 +0000 (00:41 -0500)] 
chfn: use direct equality check for semantic clarity and readability

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
23 hours agochfn: free memory before return from save_new_data()
Christian Goeschel Ndjomouo [Wed, 14 Jan 2026 04:55:30 +0000 (23:55 -0500)] 
chfn: free memory before return from save_new_data()

[kzak@redhat.com: - remove error message modification]

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
Signed-off-by: Karel Zak <kzak@redhat.com>
23 hours agochfn: use null character (0) for better readability
Christian Goeschel Ndjomouo [Wed, 14 Jan 2026 04:45:03 +0000 (23:45 -0500)] 
chfn: use null character (0) for better readability

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
23 hours agochfn: fix typos, wording, and punctuation inconsistencies
Christian Goeschel Ndjomouo [Wed, 14 Jan 2026 04:21:33 +0000 (23:21 -0500)] 
chfn: fix typos, wording, and punctuation inconsistencies

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
25 hours agoMerge branch 'lsfd--dont-reuse-stat-buffer' of https://github.com/masatake/util-linux
Karel Zak [Thu, 29 Jan 2026 09:33:09 +0000 (10:33 +0100)] 
Merge branch 'lsfd--dont-reuse-stat-buffer' of https://github.com/masatake/util-linux

* 'lsfd--dont-reuse-stat-buffer' of https://github.com/masatake/util-linux:
  lsfd: (bugfix) do not reuse stat(2) buffer for files with identical names
  tests: add a helper command, test_open_twice

45 hours agolsfd: (bugfix) do not reuse stat(2) buffer for files with identical names
Masatake YAMATO [Thu, 22 Jan 2026 16:19:09 +0000 (01:19 +0900)] 
lsfd: (bugfix) do not reuse stat(2) buffer for files with identical names

To reduce the number of stat(2) calls, lsfd reused the buffer returned
from stat(2) when file descriptors opened files with the same name.

If file descriptors open different files that happen to have the same
name, lsfd may report incorrect results. In such cases, the stat(2)
buffer must not be reused.

The program a.out is run with a file name "D/a".  It opens the file
twice during its execution with an interval.  Between the two open()
calls, a different filesystem is mounted on "D".

<the source code of ./a.out>

  #include <fcntl.h>
  #include <err.h>
  #include <string.h>
  #include <stdio.h>
  #include <stdlib.h>
  #include <unistd.h>

  static void usage(const char *prog, int eval, FILE *fp)
  {
    fputs("Usage :\n", fp);
    fprintf(fp, " %s FILE\n", prog);
    exit(eval);
  }

  int main(int argc, char **argv)
  {
    const char *fname;
    int fd0, fd1;

    if (argc < 2)
      errx(2, "too few arguements");
    if (strcmp(argv[1], "-h") == 0 ||
strcmp(argv[1], "--h") == 0)
      usage(argv[0], 0, stdout);
    if (argc > 2)
      errx(2, "too many arguements");

    fname = argv[1];

    printf("pid: %d\n", getpid());
    fd0 = open(fname, O_RDONLY);
    if (fd0 < 0)
      err(1, "error in open \"%s\" in the first time", fname);

    fputs("[press RETURN to go to the next step] ", stderr);
    getchar();

    fd1 = open(fname, O_RDONLY);
    if (fd1 < 0)
      err(1, "error in open \"%s\" in the second time", fname);

    fputs("[press RETURN to exit] ", stderr);
    getchar();

    return 0;
  }

<PREPARATION>
  $ mkdir D
  $ touch D/a
  $ dd if=/dev/zero of=img.xfs count=1 bs=400MB
  1+0 records in
  1+0 records out
  400000000 bytes (400 MB, 381 MiB) copied, 0.427125 s, 936 MB/s
  $ mkfs.xfs img.xfs
  meta-data=img.xfs                isize=512    agcount=4, agsize=24414 blks
   =                       sectsz=512   attr=2, projid32bit=1
   =                       crc=1        finobt=1, sparse=1, rmapbt=1
   =                       reflink=1    bigtime=1 inobtcount=1 nrext64=1
   =                       exchange=0   metadir=0
  data     =                       bsize=4096   blocks=97656, imaxpct=25
   =                       sunit=0      swidth=0 blks
  naming   =version 2              bsize=4096   ascii-ci=0, ftype=1, parent=0
  log      =internal log           bsize=4096   blocks=16384, version=2
   =                       sectsz=512   sunit=0 blks, lazy-count=1
  realtime =none                   extsz=4096   blocks=0, rtextents=0
   =                       rgcount=0    rgsize=0 extents
   =                       zoned=0      start=0 reserved=0
  $ sudo mount img.xfs D
  $ sudo touch D/a
  $ sudo umount D

Let's see the bug.

<TERMNAL-1>
  $ ./a.out D/a
  pid: 770257
  [press RETURN to go to the next step]

<TERMNAL-2>
  $ sudo mount img.xfs D

<TERMNAL-1>
  (press RETURN)
  [press RETURN to exit]

<TERMNAL-2>
  $ ./lsfd-orignal -p 770257 -Q 'FD > 2'
  COMMAND    PID   USER ASSOC  XMODE TYPE SOURCE MNTID    INODE NAME
  a.out   770257 yamato     3 r-----  REG   dm-3    95 30947324 /home/yamato/D/a
  a.out   770257 yamato     4 r-----  REG   dm-3  1631 30947324 /home/yamato/D/a

  $ stat D/a
    File: D/a
    Size: 0               Blocks: 0          IO Block: 4096   regular empty file
  Device: 7,10    Inode: 131         Links: 1
  ...

Although D/a has inode number 131, lsfd-original reports 30947324.
After removing the code that reuses the stat(2) buffer, lsfd-new reports:

<TERMNAL-2>
  $ ./lsfd-new -p 770257 -Q 'FD > 2'
  COMMAND    PID   USER ASSOC  XMODE TYPE SOURCE MNTID    INODE NAME
  a.out   770257 yamato     3 r-----  REG   dm-3    95 30947324 /home/yamato/D/a
  a.out   770257 yamato     4 r-----  REG loop10  1631      131 /home/yamato/D/a

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
46 hours agoAUTHORS: add copyfilerange
Karel Zak [Wed, 28 Jan 2026 12:14:10 +0000 (13:14 +0100)] 
AUTHORS: add copyfilerange

Signed-off-by: Karel Zak <kzak@redhat.com>
46 hours agoMerge branch 'copyfilerange' of https://github.com/meeuw/util-linux
Karel Zak [Wed, 28 Jan 2026 12:12:28 +0000 (13:12 +0100)] 
Merge branch 'copyfilerange' of https://github.com/meeuw/util-linux

* 'copyfilerange' of https://github.com/meeuw/util-linux:
  copyfilerange: new command to call copy-file-range

46 hours agoMerge branch 'maybe' of https://github.com/stoeckmann/util-linux
Karel Zak [Wed, 28 Jan 2026 12:03:59 +0000 (13:03 +0100)] 
Merge branch 'maybe' of https://github.com/stoeckmann/util-linux

* 'maybe' of https://github.com/stoeckmann/util-linux:
  Fix typos
  setpriv: (man) Fix grammar
  Documentation: Fix "maybe be" typo

46 hours agoMerge branch 'nsenter_pidfd_inode' of https://github.com/cgoesche/util-linux-fork
Karel Zak [Wed, 28 Jan 2026 12:01:09 +0000 (13:01 +0100)] 
Merge branch 'nsenter_pidfd_inode' of https://github.com/cgoesche/util-linux-fork

* 'nsenter_pidfd_inode' of https://github.com/cgoesche/util-linux-fork:
  nsenter: support 'PID:inode' process address format

2 days agocopyfilerange: new command to call copy-file-range
Dick Marinus [Tue, 2 Dec 2025 19:51:35 +0000 (20:51 +0100)] 
copyfilerange: new command to call copy-file-range

This command allows you to call the copy-file range system call which
performs an in-kernel copy between two files without the additional cost
of transferring data from the kernel to user space and then back into
the kernel.

It gives filesystems an opportunity to implement "copy acceleration"
techniques, such as the use of reflinks (i.e., two or more inodes that
share  pointers to the same copy-on-write disk blocks) or
server-side-copy (in the case of NFS).

A purpose of this command is to in-place deduplicate equal file blocks
in two different files.

When calling this command the source and destination file are required
and ranges must be supplied using command line arguments or from a
ranges file.

A file range contains the offset in the source and destination file and
the length of the range in bytes. The offsets can be omitted so that the
current file pointer is used. When the size is omitted or set to zero
the remainder of the file is copied.

If the file range is too long to fit in SIZE_MAX subsequential calls to
copy_file_range will be performed to copy the whole range.

The following command will copy/reflink a file:

$ copyfilerange file1 file2 0::

The following command will copy the second block from file1 into file2:

        $ copyfilerange file1 file2 4096:4096:4096

Signed-off-by: Dick Marinus <dick@mrns.nl>
2 days agoFix typos
Tobias Stoeckmann [Tue, 27 Jan 2026 17:19:46 +0000 (18:19 +0100)] 
Fix typos

Typos found with codespell.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 days agosetpriv: (man) Fix grammar
Tobias Stoeckmann [Tue, 27 Jan 2026 17:03:01 +0000 (18:03 +0100)] 
setpriv: (man) Fix grammar

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 days agoDocumentation: Fix "maybe be" typo
Tobias Stoeckmann [Tue, 27 Jan 2026 17:01:56 +0000 (18:01 +0100)] 
Documentation: Fix "maybe be" typo

No functional change.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 days agoMerge branch 'arm-ids' of https://github.com/mstorsjo/util-linux
Karel Zak [Tue, 27 Jan 2026 12:10:43 +0000 (13:10 +0100)] 
Merge branch 'arm-ids' of https://github.com/mstorsjo/util-linux

* 'arm-ids' of https://github.com/mstorsjo/util-linux:
  lscpu: Implement options for dumping ARM implementer/model name tables

2 days agonsenter: support 'PID:inode' process address format
Christian Goeschel Ndjomouo [Mon, 12 Jan 2026 04:14:18 +0000 (23:14 -0500)] 
nsenter: support 'PID:inode' process address format

The 'PID:inode' can be used for the --target option
to uniquely identify a process in a race-free manner.

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
3 days agoMerge branch 'pidutils_improve' of https://github.com/cgoesche/util-linux-fork
Karel Zak [Tue, 27 Jan 2026 10:37:28 +0000 (11:37 +0100)] 
Merge branch 'pidutils_improve' of https://github.com/cgoesche/util-linux-fork

* 'pidutils_improve' of https://github.com/cgoesche/util-linux-fork:
  lib: (pidutils) improve the return protocol
  lib: (pidutils) add a routine to parse pids and err() on failure
  lib: (pidutils) improve 'PID:inode' parsing logic

3 days agoMerge branch 'pager_removals' of https://github.com/stoeckmann/util-linux
Karel Zak [Tue, 27 Jan 2026 10:35:51 +0000 (11:35 +0100)] 
Merge branch 'pager_removals' of https://github.com/stoeckmann/util-linux

* 'pager_removals' of https://github.com/stoeckmann/util-linux:
  lib/pager: Fix typos
  lib/pager: Simplify wait_for_pager
  lib/pager: Merge wait_or_whine into wait_for_pager
  lib/pager: The variable need_in is always 1
  lib/pager: Remove struct field `no_stdin`
  lib/pager: Remove struct field preexec_cb
  lib/pager: Remove unused define
  lib/pager: Remove unused struct entry `err`
  lib/pager: Remove unused struct field "out"

3 days agoMerge branch 'PR/libpath-nonnull-check' of https://github.com/karelzak/util-linux...
Karel Zak [Tue, 27 Jan 2026 10:35:07 +0000 (11:35 +0100)] 
Merge branch 'PR/libpath-nonnull-check' of https://github.com/karelzak/util-linux-work

* 'PR/libpath-nonnull-check' of https://github.com/karelzak/util-linux-work:
  lib/path: add NULL checks for path in statx and access

3 days agolscpu: Implement options for dumping ARM implementer/model name tables
Martin Storsjö [Thu, 22 Jan 2026 22:56:56 +0000 (00:56 +0200)] 
lscpu: Implement options for dumping ARM implementer/model name tables

This allows extracting the contents of the tables, which itself
is uncopyrightable, for use in other projects with different
code licenses.

3 days agolsns: make the synopsis more coherent
Christian Goeschel Ndjomouo [Tue, 27 Jan 2026 01:14:02 +0000 (20:14 -0500)] 
lsns: make the synopsis more coherent

Using _namespace ID_ in the synopsis as argument definition
is more coherent as it lets a user easily infer that a
numeric value is required to identify a namespace.

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
3 days agolib: (pidutils) improve the return protocol
Christian Goeschel Ndjomouo [Mon, 26 Jan 2026 14:29:33 +0000 (09:29 -0500)] 
lib: (pidutils) improve the return protocol

Instead of using generic return codes, lets
be more precise and return negative errno
numbers and set errno accordingly, so that
higher level callers can report errors more
accurately.

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
3 days agotests: add a helper command, test_open_twice
Masatake YAMATO [Thu, 22 Jan 2026 17:56:46 +0000 (02:56 +0900)] 
tests: add a helper command, test_open_twice

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
4 days agoMerge branch 'spelling' of https://github.com/jwilk-forks/util-linux
Karel Zak [Mon, 26 Jan 2026 10:13:31 +0000 (11:13 +0100)] 
Merge branch 'spelling' of https://github.com/jwilk-forks/util-linux

* 'spelling' of https://github.com/jwilk-forks/util-linux:
  setpriv: (man) fix typo

4 days agolscpu: remove duplicate ARM names, clean up names
Karel Zak [Mon, 26 Jan 2026 09:37:49 +0000 (10:37 +0100)] 
lscpu: remove duplicate ARM names, clean up names

* Remove duplicate ARM core names
* Remove unwanted blank characters from core names

References: https://github.com/util-linux/util-linux/pull/3882
Reported-by: Martin Storsjö
Signed-off-by: Karel Zak <kzak@redhat.com>
5 days agosetpriv: (man) fix typo
Jakub Wilk [Sat, 24 Jan 2026 10:51:01 +0000 (11:51 +0100)] 
setpriv: (man) fix typo

Signed-off-by: Jakub Wilk <jwilk@jwilk.net>
6 days agolib: (pidutils) add a routine to parse pids and err() on failure
Christian Goeschel Ndjomouo [Tue, 13 Jan 2026 20:18:27 +0000 (15:18 -0500)] 
lib: (pidutils) add a routine to parse pids and err() on failure

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
6 days agolib: (pidutils) improve 'PID:inode' parsing logic
Christian Goeschel Ndjomouo [Wed, 14 Jan 2026 14:51:58 +0000 (09:51 -0500)] 
lib: (pidutils) improve 'PID:inode' parsing logic

The parsing logic in ul_parse_pid_str() failed to
identify invalid input when *pidstr starts with a
colon ':' followed by a number (inode), and also
in cases where the input does not consist of any
digits. And lastly if the PID or inode is 0.

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
7 days agoMerge branch 'PR/libfdisk-EBR-gap' of https://github.com/karelzak/util-linux-work
Karel Zak [Thu, 22 Jan 2026 19:03:20 +0000 (20:03 +0100)] 
Merge branch 'PR/libfdisk-EBR-gap' of https://github.com/karelzak/util-linux-work

* 'PR/libfdisk-EBR-gap' of https://github.com/karelzak/util-linux-work:
  tests: simplify TS_DESC in fdisk/mbr-logical-ebr-gap
  libfdisk: remove duplicate code
  tests: (fdisk) make sure test_strerror avalable
  tests: fdisk: add regression test for missing EBR gap between logical partitions
  libfdisk: (dos) fix logical partition start

7 days agotests: simplify TS_DESC in fdisk/mbr-logical-ebr-gap
Karel Zak [Thu, 22 Jan 2026 16:47:23 +0000 (17:47 +0100)] 
tests: simplify TS_DESC in fdisk/mbr-logical-ebr-gap

Signed-off-by: Karel Zak <kzak@redhat.com>
7 days agolibfdisk: remove duplicate code
Karel Zak [Thu, 22 Jan 2026 16:44:25 +0000 (17:44 +0100)] 
libfdisk: remove duplicate code

References: 8b8da020f57414c90981371da71fdf32d2253ac7
Signed-off-by: Karel Zak <kzak@redhat.com>
7 days agotests: (fdisk) make sure test_strerror avalable
Karel Zak [Thu, 22 Jan 2026 16:43:15 +0000 (17:43 +0100)] 
tests: (fdisk) make sure test_strerror avalable

Signed-off-by: Karel Zak <kzak@redhat.com>
7 days agoMerge branch 'master' of https://github.com/martinjungblut/util-linux into PR/libfdis...
Karel Zak [Thu, 22 Jan 2026 16:29:51 +0000 (17:29 +0100)] 
Merge branch 'master' of https://github.com/martinjungblut/util-linux into PR/libfdisk-EBR-gap

* 'master' of https://github.com/martinjungblut/util-linux:
  tests: fdisk: add regression test for missing EBR gap between logical partitions
  libfdisk: (dos) fix logical partition start

7 days agolsfd: fix dependency on errnos.h
Masatake YAMATO [Thu, 22 Jan 2026 14:41:54 +0000 (23:41 +0900)] 
lsfd: fix dependency on errnos.h

Fix a bug that I introduced in 764f1d396f.

Makemodule.am listed a dependency on errnos.h for file.c, but the header
is actually used by error.c.  Fix the dependency to ensure correct
rebuilds.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
8 days agolsfd: make sure errors array is not empty [-Werror=type-limits]
Karel Zak [Wed, 21 Jan 2026 10:56:54 +0000 (11:56 +0100)] 
lsfd: make sure errors array is not empty [-Werror=type-limits]

lsfd-cmd/error.c: In function ‘get_errno_name’:
lsfd-cmd/error.c:49:30: error: comparison of unsigned expression in ‘< 0’ is always false [-Werror=type-limits]
   49 |         for (size_t i = 0; i < ARRAY_SIZE(errnos); i ++) {
      |                              ^

Signed-off-by: Karel Zak <kzak@redhat.com>
9 days agolib/pager: Fix typos
Tobias Stoeckmann [Tue, 20 Jan 2026 16:34:37 +0000 (17:34 +0100)] 
lib/pager: Fix typos

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
9 days agolib/pager: Simplify wait_for_pager
Tobias Stoeckmann [Mon, 19 Jan 2026 18:35:48 +0000 (19:35 +0100)] 
lib/pager: Simplify wait_for_pager

Remove unneeded checks and simplify loop to make it easier to see that
the function only waits until the child terminates.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
9 days agolib/pager: Merge wait_or_whine into wait_for_pager
Tobias Stoeckmann [Mon, 19 Jan 2026 18:25:30 +0000 (19:25 +0100)] 
lib/pager: Merge wait_or_whine into wait_for_pager

Move code from wait_or_whine into wait_for_pager to simplify code by
clarifying where values come from (pid is pager_process.pid).

Also, it shows that return values are actually not used.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
9 days agolib/pager: The variable need_in is always 1
Tobias Stoeckmann [Mon, 19 Jan 2026 18:18:16 +0000 (19:18 +0100)] 
lib/pager: The variable need_in is always 1

Right before start_command is called, cmd->in is set to -1. Thus,
need_in is always true.

This makes sense, since we create a pipe for tools to print data to
pager.

Remove obsolete code for better readability.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
9 days agolib/pager: Remove struct field `no_stdin`
Tobias Stoeckmann [Mon, 19 Jan 2026 18:10:42 +0000 (19:10 +0100)] 
lib/pager: Remove struct field `no_stdin`

The struct field `no_stdin` is always false, since it's never
initialized and only eventually reset to false when the whole
`pager_process` is reset to 0 with a `memset` call.

Since pager is supposed to read from stdin, this feature is not needed.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
9 days agolib/pager: Remove struct field preexec_cb
Tobias Stoeckmann [Mon, 19 Jan 2026 18:09:07 +0000 (19:09 +0100)] 
lib/pager: Remove struct field preexec_cb

The struct field preexec_cb is always set to pager_preexec. Simplify the
code by calling this function directly.

Removes function pointer handling.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
9 days agolib/pager: Remove unused define
Tobias Stoeckmann [Mon, 19 Jan 2026 18:06:50 +0000 (19:06 +0100)] 
lib/pager: Remove unused define

The NULL_DEVICE is never used.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
9 days agolib/pager: Remove unused struct entry `err`
Tobias Stoeckmann [Mon, 19 Jan 2026 18:05:16 +0000 (19:05 +0100)] 
lib/pager: Remove unused struct entry `err`

The struct entry `err` is never used. In original source files, it is
used to redirect stderr of pager.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
9 days agolib/pager: Remove unused struct field "out"
Tobias Stoeckmann [Mon, 19 Jan 2026 18:02:50 +0000 (19:02 +0100)] 
lib/pager: Remove unused struct field "out"

The struct field `out` is never set, thus always 0. Since the pager
output is never redirected, this functionality stub can be removed.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
9 days agoMerge branch 'PR/unshare-signals-forwarding' of https://github.com/karelzak/util...
Karel Zak [Tue, 20 Jan 2026 14:35:37 +0000 (15:35 +0100)] 
Merge branch 'PR/unshare-signals-forwarding' of https://github.com/karelzak/util-linux-work

* 'PR/unshare-signals-forwarding' of https://github.com/karelzak/util-linux-work:
  tests: add tests for unshare --forward-signals
  unshare: document --forward-signals in man page
  unshare: implement signal forwarding when --forward-signals is used
  unshare: add --forward-signals option to argument parser

9 days agoMerge branch 'lsfd--add-error-c' of https://github.com/masatake/util-linux
Karel Zak [Tue, 20 Jan 2026 14:32:21 +0000 (15:32 +0100)] 
Merge branch 'lsfd--add-error-c' of https://github.com/masatake/util-linux

* 'lsfd--add-error-c' of https://github.com/masatake/util-linux:
  lsfd: (refactor) move the error object related code to a new file
  lsfd: (refactor) remove redundant is_error member from struct file
  lsfd: (refactor) add a helper function making error file objects
  lsfd: remove __unused__ attr from parameters used actually
  lsfd: (cosmetic) adjust white spaces in column definitions

9 days agoMerge branch 'patch-1' of https://github.com/finefoot/util-linux
Karel Zak [Tue, 20 Jan 2026 14:23:02 +0000 (15:23 +0100)] 
Merge branch 'patch-1' of https://github.com/finefoot/util-linux

* 'patch-1' of https://github.com/finefoot/util-linux:
  runuser|su: elaborate man page regarding TIOCSTI/TIOCLINUX ioctl command injection

10 days agorunuser|su: elaborate man page regarding TIOCSTI/TIOCLINUX ioctl command injection
finefoot [Sun, 21 Sep 2025 20:40:07 +0000 (22:40 +0200)] 
runuser|su: elaborate man page regarding TIOCSTI/TIOCLINUX ioctl command injection

10 days agolsfd: (refactor) move the error object related code to a new file
Masatake YAMATO [Mon, 19 Jan 2026 20:38:23 +0000 (05:38 +0900)] 
lsfd: (refactor) move the error object related code to a new file

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
10 days agolsfd: (refactor) remove redundant is_error member from struct file
Masatake YAMATO [Mon, 19 Jan 2026 20:22:20 +0000 (05:22 +0900)] 
lsfd: (refactor) remove redundant is_error member from struct file

It is possible to detect whether a file object is an error object
or not from its class information.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
10 days agolsfd: (refactor) add a helper function making error file objects
Masatake YAMATO [Sun, 12 Oct 2025 06:58:59 +0000 (15:58 +0900)] 
lsfd: (refactor) add a helper function making error file objects

new_error_file_common() is the helper function.  new_stat_error_file()
and new_stat_error_file() use the function.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
10 days agolsfd: remove __unused__ attr from parameters used actually
Masatake YAMATO [Sun, 12 Oct 2025 20:16:38 +0000 (05:16 +0900)] 
lsfd: remove __unused__ attr from parameters used actually

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
10 days agolsfd: (cosmetic) adjust white spaces in column definitions
Masatake YAMATO [Sun, 12 Oct 2025 20:25:05 +0000 (05:25 +0900)] 
lsfd: (cosmetic) adjust white spaces in column definitions

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
10 days agoMerge branch 'add-man-section-to-calls' of https://github.com/meeuw/util-linux
Karel Zak [Mon, 19 Jan 2026 11:23:17 +0000 (12:23 +0100)] 
Merge branch 'add-man-section-to-calls' of https://github.com/meeuw/util-linux

* 'add-man-section-to-calls' of https://github.com/meeuw/util-linux:
  Add man page section to (sys)calls

10 days agoautotools: use $PTHREAD_LIBS everywhere
Karel Zak [Mon, 19 Jan 2026 11:14:15 +0000 (12:14 +0100)] 
autotools: use $PTHREAD_LIBS everywhere

Signed-off-by: Karel Zak <kzak@redhat.com>
10 days agoMerge branch 'fix-pthread' of https://github.com/bkuhls/util-linux
Karel Zak [Mon, 19 Jan 2026 11:06:46 +0000 (12:06 +0100)] 
Merge branch 'fix-pthread' of https://github.com/bkuhls/util-linux

* 'fix-pthread' of https://github.com/bkuhls/util-linux:
  autotools: optionally add libpthread to uuid.pc

10 days agoMerge branch 'pseudo-kiofuse' of https://github.com/Elsensee/util-linux
Karel Zak [Mon, 19 Jan 2026 11:03:45 +0000 (12:03 +0100)] 
Merge branch 'pseudo-kiofuse' of https://github.com/Elsensee/util-linux

* 'pseudo-kiofuse' of https://github.com/Elsensee/util-linux:
  Add fuse.kio-fuse to list of pseudo file systems

10 days agotests: add tests for unshare --forward-signals
Kiran Rangoon [Fri, 16 Jan 2026 17:06:48 +0000 (12:06 -0500)] 
tests: add tests for unshare --forward-signals

Add two test cases for the new --forward-signals option:
- forward-signals: verifies SIGTERM is forwarded to child
- forward-signals-kill-child: verifies compatibility with --kill-child

Both tests use test_sigreceive which exits with the signal number
received, confirming proper signal forwarding.

Signed-off-by: Kiran Rangoon <kiranrangoon0@gmail.com>
10 days agounshare: document --forward-signals in man page
Kiran Rangoon [Fri, 16 Jan 2026 17:06:47 +0000 (12:06 -0500)] 
unshare: document --forward-signals in man page

Add documentation for the new --forward-signals option, explaining
its use case (graceful shutdown during reboot/system management)
and interaction with the --fork option.

Signed-off-by: Kiran Rangoon <kiranrangoon0@gmail.com>
10 days agounshare: implement signal forwarding when --forward-signals is used
Kiran Rangoon [Fri, 16 Jan 2026 17:06:46 +0000 (12:06 -0500)] 
unshare: implement signal forwarding when --forward-signals is used

When --forward-signals is specified, install signal handlers for
SIGTERM and SIGINT that forward these signals to the child process.
This allows child processes with cleanup handlers to execute gracefully during shutdown scenarios like
system reboot.

Also fix waitpid() to handle EINTR properly when signals are being
forwarded, ensuring the parent waits for the child to complete
signal handling before exiting.

Signed-off-by: Kiran Rangoon <kiranrangoon0@gmail.com>
10 days agounshare: add --forward-signals option to argument parser
Kiran Rangoon [Fri, 16 Jan 2026 17:06:45 +0000 (12:06 -0500)] 
unshare: add --forward-signals option to argument parser

Add a new --forward-signals command-line option that will allow
unshare to forward SIGTERM and SIGINT signals from the parent
process to the forked child process.

This commit adds the option parsing infrastructure but does not
implement the signal forwarding logic yet. The flag defaults to 0
(disabled) to maintain backward compatibility.

Signed-off-by: Kiran Rangoon <kiranrangoon0@gmail.com>
11 days agoAdd man page section to (sys)calls
Dick Marinus [Sun, 18 Jan 2026 19:41:48 +0000 (20:41 +0100)] 
Add man page section to (sys)calls

13 days agoautotools: optionally add libpthread to uuid.pc
Bernd Kuhls [Fri, 16 Jan 2026 22:33:34 +0000 (23:33 +0100)] 
autotools: optionally add libpthread to uuid.pc

Fixes https://github.com/util-linux/util-linux/issues/3210#issuecomment-3477915953

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
2 weeks agoMerge branch 'PR/findmnt-mounttype' of https://github.com/karelzak/util-linux-work
Karel Zak [Wed, 14 Jan 2026 15:02:30 +0000 (16:02 +0100)] 
Merge branch 'PR/findmnt-mounttype' of https://github.com/karelzak/util-linux-work

* 'PR/findmnt-mounttype' of https://github.com/karelzak/util-linux-work:
  findmnt: fix misleading warning messages for ntfs3
  libmount: move fstype_to_mounttype() to include/
  include: rename mount-api-utils.h to mountutils.h

2 weeks agofindmnt: fix misleading warning messages for ntfs3
Karel Zak [Tue, 13 Jan 2026 17:38:24 +0000 (18:38 +0100)] 
findmnt: fix misleading warning messages for ntfs3

* Remap fstab aliases like "ntfs3" to "ntfs" as reported by libblkid.

* Use mounttype (from --with-ntfs-mounttype=) to check if supported by
  the kernel rather than the type provided by libblkid.

* Don't check if the kernel supports type read from filesystem if an
  explicit type specified in fstab.

Fixes: https://github.com/util-linux/util-linux/issues/3912
Addresses: https://github.com/util-linux/util-linux/pull/3963
Signed-off-by: Karel Zak <kzak@redhat.com>
2 weeks agolib/path: add NULL checks for path in statx and access
Karel Zak [Wed, 14 Jan 2026 11:12:35 +0000 (12:12 +0100)] 
lib/path: add NULL checks for path in statx and access

Coverity warns that *at() libc functions (faccessat, statx) have pathname
marked as nonnull. Add explicit runtime NULL checks returning -EINVAL
instead of using __attribute__((nonnull)) into include/path.h to maintain
runtime safety for suid code.

Signed-off-by: Karel Zak <kzak@redhat.com>
2 weeks agoMerge branch 'unshare_typo' of https://github.com/stoeckmann/util-linux
Karel Zak [Wed, 14 Jan 2026 09:25:55 +0000 (10:25 +0100)] 
Merge branch 'unshare_typo' of https://github.com/stoeckmann/util-linux

* 'unshare_typo' of https://github.com/stoeckmann/util-linux:
  unshare: (man) fix grammar

2 weeks agoMerge branch 'PR/blkpr-keys' of https://github.com/karelzak/util-linux-work
Karel Zak [Wed, 14 Jan 2026 09:25:17 +0000 (10:25 +0100)] 
Merge branch 'PR/blkpr-keys' of https://github.com/karelzak/util-linux-work

* 'PR/blkpr-keys' of https://github.com/karelzak/util-linux-work:
  blkpr: fix compilation [-Werror,-Wunused-function]
  blkpr: Call gettext() for descriptions, clean up
  blkpr: add read-reservation command
  blkpr: add read-keys command
  blkpr: prepare for _IOR() ioctls

2 weeks agomount: (man) add link to mount.ceph(8)
Karel Zak [Wed, 14 Jan 2026 09:23:03 +0000 (10:23 +0100)] 
mount: (man) add link to mount.ceph(8)

Suggested-by: Viacheslav Dubeyko <Slava.Dubeyko@ibm.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
2 weeks agounshare: (man) fix grammar
Tobias Stoeckmann [Tue, 13 Jan 2026 23:18:47 +0000 (00:18 +0100)] 
unshare: (man) fix grammar

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agolibmount: move fstype_to_mounttype() to include/
Karel Zak [Tue, 13 Jan 2026 17:36:39 +0000 (18:36 +0100)] 
libmount: move fstype_to_mounttype() to include/

Make the workaround function globally available.

Signed-off-by: Karel Zak <kzak@redhat.com>
2 weeks agoinclude: rename mount-api-utils.h to mountutils.h
Karel Zak [Tue, 13 Jan 2026 17:23:33 +0000 (18:23 +0100)] 
include: rename mount-api-utils.h to mountutils.h

Keep the filename consistent with other header filenames.

Signed-off-by: Karel Zak <kzak@redhat.com>
2 weeks agoMerge branch 'lslocks--fix-oPID' of https://github.com/masatake/util-linux
Karel Zak [Tue, 13 Jan 2026 14:08:44 +0000 (15:08 +0100)] 
Merge branch 'lslocks--fix-oPID' of https://github.com/masatake/util-linux

* 'lslocks--fix-oPID' of https://github.com/masatake/util-linux:
  lslocks: (bugfix) don't set rawdata in COL_PID if rawdata is null

2 weeks agolib/path: Ensure consistent and robust path checks
Karel Zak [Tue, 13 Jan 2026 12:52:41 +0000 (13:52 +0100)] 
lib/path: Ensure consistent and robust path checks

Signed-off-by: Karel Zak <kzak@redhat.com>
2 weeks agoblkpr: fix compilation [-Werror,-Wunused-function]
Karel Zak [Tue, 13 Jan 2026 12:23:39 +0000 (13:23 +0100)] 
blkpr: fix compilation [-Werror,-Wunused-function]

sys-utils/blkpr.c:171:27: error: unused function 'type_to_str' [-Werror,-Wunused-function]

Signed-off-by: Karel Zak <kzak@redhat.com>
2 weeks agolslocks: (bugfix) don't set rawdata in COL_PID if rawdata is null
Masatake YAMATO [Tue, 13 Jan 2026 10:03:26 +0000 (19:03 +0900)] 
lslocks: (bugfix) don't set rawdata in COL_PID if rawdata is null

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2 weeks agolsfd: fill MNTID coulmn for exe, cwd, and rtd assocations
Masatake YAMATO [Fri, 9 Jan 2026 05:46:15 +0000 (14:46 +0900)] 
lsfd: fill MNTID coulmn for exe, cwd, and rtd assocations

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2 weeks agotests: (lsfd::column-mntid) add a new case
Masatake YAMATO [Fri, 9 Jan 2026 02:47:25 +0000 (11:47 +0900)] 
tests: (lsfd::column-mntid) add a new case

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2 weeks agotests: (test_mkfds::mmap) add "shared" paramter
Masatake YAMATO [Fri, 9 Jan 2026 02:48:35 +0000 (11:48 +0900)] 
tests: (test_mkfds::mmap) add "shared" paramter

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2 weeks agolsfd: fill MNTID coulmn for shm and mem assocations
Masatake YAMATO [Thu, 8 Jan 2026 21:59:56 +0000 (06:59 +0900)] 
lsfd: fill MNTID coulmn for shm and mem assocations

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2 weeks agolsfd: (refactor) add has_mnt_id helper macro
Masatake YAMATO [Fri, 9 Jan 2026 05:05:44 +0000 (14:05 +0900)] 
lsfd: (refactor) add has_mnt_id helper macro

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2 weeks agolib/path: add wrapers for statx(2)
Masatake YAMATO [Thu, 8 Jan 2026 21:57:45 +0000 (06:57 +0900)] 
lib/path: add wrapers for statx(2)

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2 weeks agolib/path: add __format__ attr to ul_path_v?statf()
Masatake YAMATO [Fri, 9 Jan 2026 16:19:30 +0000 (01:19 +0900)] 
lib/path: add __format__ attr to ul_path_v?statf()

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2 weeks agotests: (refactor) add ts_skip_config, a new helper function
Masatake YAMATO [Fri, 9 Jan 2026 03:44:00 +0000 (12:44 +0900)] 
tests: (refactor) add ts_skip_config, a new helper function

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2 weeks agolib/path: (cosmetic) delete the empty line at the EOF
Masatake YAMATO [Fri, 9 Jan 2026 01:15:18 +0000 (10:15 +0900)] 
lib/path: (cosmetic) delete the empty line at the EOF

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2 weeks agotests: (lsfd::mkfds-mmap-maksed-file) revise the description
Masatake YAMATO [Fri, 9 Jan 2026 02:11:53 +0000 (11:11 +0900)] 
tests: (lsfd::mkfds-mmap-maksed-file) revise the description

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2 weeks agoblkpr: Call gettext() for descriptions, clean up
Karel Zak [Mon, 12 Jan 2026 15:27:23 +0000 (16:27 +0100)] 
blkpr: Call gettext() for descriptions, clean up

* Use N_() and _() macros to translate description texts.
* Avoid repeating command/flag/type names in description texts.
* Remove trailing line breaks; it's the caller's task to format
  before/after the descriptions.
* Improve coding style by starting strings at the beginning of the
  line, enhancing maintainability (80 characters limit).
* Keep "}, {" on separate lines as per our usual coding practice.

Signed-off-by: Karel Zak <kzak@redhat.com>
2 weeks agoblkpr: add read-reservation command
Stefan Hajnoczi [Wed, 17 Dec 2025 18:26:07 +0000 (13:26 -0500)] 
blkpr: add read-reservation command

The new IOC_PR_READ_RESERVATION ioctl reports the current reservation on
a device. Add a command so that users can inspect the current
reservation. This is useful both for troubleshooting and for recovery
scenarios.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2 weeks agoblkpr: add read-keys command
Stefan Hajnoczi [Wed, 17 Dec 2025 18:26:06 +0000 (13:26 -0500)] 
blkpr: add read-keys command

The new IOC_PR_READ_KEYS ioctl lists registered keys on a device. Add a
command so that users can inspect keys. This is useful both for
troubleshooting and for recovery scenarios.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2 weeks agoblkpr: prepare for _IOR() ioctls
Stefan Hajnoczi [Wed, 17 Dec 2025 18:26:05 +0000 (13:26 -0500)] 
blkpr: prepare for _IOR() ioctls

parse_pr_command() returns the ioctl command constant for a given
command or -1 when the command is unknown. Up until now all ioctl
command constants were positive, so the following check worked:

  if (command < 0)
      err(EXIT_FAILURE, _("unknown command"));

The top two bits of ioctl command constants encode the direction (_IO,
_IOR, _IOW, _IOWR). ioctl commands defined with _IOR have negative ioctl
command constants.

Explicitly check for -1 to differentiate "unknown command" from valid
ioctls commands. Later commits will add ioctl commands that use _IOR.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2 weeks agoMerge branch 'env_drop' of https://github.com/stoeckmann/util-linux
Karel Zak [Mon, 12 Jan 2026 13:34:30 +0000 (14:34 +0100)] 
Merge branch 'env_drop' of https://github.com/stoeckmann/util-linux

* 'env_drop' of https://github.com/stoeckmann/util-linux:
  env: ignore only invalid environment variables

2 weeks agoMerge branch 'lsblk-ul-startswith' of https://github.com/codefiles/util-linux
Karel Zak [Mon, 12 Jan 2026 13:17:40 +0000 (14:17 +0100)] 
Merge branch 'lsblk-ul-startswith' of https://github.com/codefiles/util-linux

* 'lsblk-ul-startswith' of https://github.com/codefiles/util-linux:
  lsblk: use ul_startswith()

2 weeks agoMerge branch 'typos' of https://github.com/stoeckmann/util-linux
Karel Zak [Mon, 12 Jan 2026 13:15:23 +0000 (14:15 +0100)] 
Merge branch 'typos' of https://github.com/stoeckmann/util-linux

* 'typos' of https://github.com/stoeckmann/util-linux:
  Fix typos in comments

2 weeks agoMerge branch 'login_motd_reg' of https://github.com/stoeckmann/util-linux
Karel Zak [Mon, 12 Jan 2026 13:14:51 +0000 (14:14 +0100)] 
Merge branch 'login_motd_reg' of https://github.com/stoeckmann/util-linux

* 'login_motd_reg' of https://github.com/stoeckmann/util-linux:
  login: only print regular files for motd

2 weeks agoMerge branch 'login_sig_race' of https://github.com/stoeckmann/util-linux
Karel Zak [Mon, 12 Jan 2026 13:13:17 +0000 (14:13 +0100)] 
Merge branch 'login_sig_race' of https://github.com/stoeckmann/util-linux

* 'login_sig_race' of https://github.com/stoeckmann/util-linux:
  login: remove signal handler before cleanup

2 weeks agoMerge branch 'fdisk_signal' of https://github.com/stoeckmann/util-linux
Karel Zak [Mon, 12 Jan 2026 12:56:19 +0000 (13:56 +0100)] 
Merge branch 'fdisk_signal' of https://github.com/stoeckmann/util-linux

* 'fdisk_signal' of https://github.com/stoeckmann/util-linux:
  fdisk: make SIGINT handler signal-safe