spiegel_podman/libpod
Giuseppe Scrivano f172ff789b
rootless: use nsfs file handles to persist namespaces
use name_to_handle_at and open_by_handle_at to persist rootless
namespaces without needing a pause process.

The namespace file handles are stored in a file and can be used to
rejoin the namespaces, as long as the namespaces still exist.

Fall back to the pause process approach only when the kernel doesn't
support nsfs handles (EOPNOTSUPP).

The feature is currently only enabled when the PODMAN_NO_PAUSE_PROCESS
environment variable is set.

These changes in the kernel are required (landed in Linux 6.18):

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3ab378cfa793

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2026-01-20 18:41:59 +01:00
..
define Add DELETE /libpod/quadlets 2026-01-15 12:10:32 +01:00
driver Bump Go version to v6 2025-10-23 11:00:15 -04:00
events enable gofumpt formatter 2025-11-11 12:32:46 +01:00
layers Switch common, storage and image to monorepo. 2025-09-01 12:33:04 +02:00
linkmode chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
lock enable gofumpt formatter 2025-11-11 12:32:46 +01:00
logs enable gofumpt formatter 2025-11-11 12:32:46 +01:00
plugin Bump Go version to v6 2025-10-23 11:00:15 -04:00
shutdown enable gofumpt formatter 2025-11-11 12:32:46 +01:00
common_test.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container.go libpod: simplify unnecessary loops 2026-01-09 16:49:33 -05:00
container_api.go Fix container export emitting incorrect event type. 2026-01-12 16:25:25 +05:30
container_commit.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_config.go Remove hardcoded refs from ociartifact code 2025-11-13 22:57:21 +01:00
container_copy_common.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_copy_freebsd.go Mount volumes before copying into a container 2024-11-27 08:09:50 -05:00
container_copy_linux.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_exec.go libpod: simplify unnecessary loops 2026-01-09 16:49:33 -05:00
container_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_graph.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_graph_test.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_healthcheck_test.go Fixes #27651 - Fix health inspect/ps for rootfs containers with empty healthcheck 2026-01-07 12:18:01 -06:00
container_inspect.go Fixes #27651 - Fix health inspect/ps for rootfs containers with empty healthcheck 2026-01-07 12:18:01 -06:00
container_inspect_freebsd.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_inspect_linux.go vendor: update common, image, storage to main 2025-11-21 14:24:29 +01:00
container_internal.go Merge pull request #26445 from aaron-ang/update-ulimit 2026-01-16 08:38:00 -05:00
container_internal_common.go Vendor latest mono repo for libartifact changes 2025-12-10 14:44:50 -06:00
container_internal_freebsd.go enable gofumpt formatter 2025-11-11 12:32:46 +01:00
container_internal_linux.go libpod/container_internal*.go: Remove Cgroups v1 2025-11-12 15:15:32 -05:00
container_internal_linux_test.go libpod: --user works with --hostuser entries 2025-04-07 18:11:06 +02:00
container_internal_test.go Switch common, storage and image to monorepo. 2025-09-01 12:33:04 +02:00
container_linux.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_log.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_log_linux.go enable gofumpt formatter 2025-11-11 12:32:46 +01:00
container_log_unsupported.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_path_resolution.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_path_resolution_test.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_stat_common.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_stat_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_stat_linux.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_top_freebsd.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_top_linux.c libpod/container_top_linux.c: fix missing header 2024-06-27 10:50:17 +02:00
container_top_linux.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
container_top_unsupported.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
container_validate.go Remove deprecated fields ctrConfig.[StaticIP,StaticMAC] 2025-11-12 15:35:29 -05:00
diff.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
doc.go document that using libpod package directly is not supported 2022-03-23 19:05:29 +01:00
events.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
healthcheck.go fix: skip execution of probes when initialDelaySeconds is not elapsed 2025-12-11 12:50:24 +01:00
healthcheck_config.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
healthcheck_linux.go libpod: fix healthchecks not executing every interval on linux 2025-11-26 17:57:38 +01:00
healthcheck_nosystemd_linux.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
healthcheck_unsupported.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
info.go Remove BoltDB state support 2025-10-28 12:09:04 -04:00
info_freebsd.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
info_linux.go Remove network-cmd-path 2025-12-19 16:52:49 -05:00
info_test.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
kube.go enable gofumpt formatter 2025-11-11 12:32:46 +01:00
mounts_linux.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
networking_common.go Remove BoltDB state support 2025-10-28 12:09:04 -04:00
networking_freebsd.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
networking_linux.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
networking_linux_test.go Remove BoltDB state support 2025-10-28 12:09:04 -04:00
networking_machine.go run modernize -fix ./... 2025-09-10 16:17:04 +02:00
networking_pasta_linux.go Switch common, storage and image to monorepo. 2025-09-01 12:33:04 +02:00
networking_slirp4netns.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
oci.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
oci_conmon.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
oci_conmon_attach_common.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
oci_conmon_attach_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
oci_conmon_attach_linux.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
oci_conmon_common.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
oci_conmon_exec_common.go enable gofumpt formatter 2025-11-11 12:32:46 +01:00
oci_conmon_exec_freebsd.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
oci_conmon_exec_linux.go Switch common, storage and image to monorepo. 2025-09-01 12:33:04 +02:00
oci_conmon_freebsd.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
oci_conmon_linux.go vendor: update common, image, storage to main 2025-11-21 14:24:29 +01:00
oci_missing.go enable gofumpt formatter 2025-11-11 12:32:46 +01:00
oci_util.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
options.go Remove network-cmd-path 2025-12-19 16:52:49 -05:00
pod.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
pod_api.go Deterministically order pod inspect fields 2025-12-04 15:25:11 -05:00
pod_internal.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
pod_internal_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
pod_internal_linux.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
pod_status.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
pod_top_freebsd.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
pod_top_linux.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
reset.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
rlimit_int64.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
rlimit_uint64.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
runtime.go rootless: use nsfs file handles to persist namespaces 2026-01-20 18:41:59 +01:00
runtime_cstorage.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
runtime_ctr.go Merge pull request #27271 from lsm5/podman6-no-cgv1 2025-11-14 17:03:59 +00:00
runtime_ctr_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
runtime_ctr_linux.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
runtime_freebsd.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
runtime_img.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
runtime_linux.go libpod/runtime_linux.go: Remove Cgroups v1 2025-11-12 15:15:32 -05:00
runtime_migrate.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
runtime_migrate_freebsd.go libpod: fix a confusing error message from 'podman system reset' on FreeBSD 2025-02-11 15:13:29 +00:00
runtime_migrate_linux.go rootless: use nsfs file handles to persist namespaces 2026-01-20 18:41:59 +01:00
runtime_migrate_unsupported.go libpod: fix a confusing error message from 'podman system reset' on FreeBSD 2025-02-11 15:13:29 +00:00
runtime_pod.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
runtime_pod_common.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
runtime_pod_freebsd.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
runtime_pod_linux.go libpod/runtime_pod_linux.go: Remove Cgroups v1 2025-11-12 15:15:32 -05:00
runtime_pre_go1.20.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
runtime_renumber.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
runtime_test.go Remove BoltDB state support 2025-10-28 12:09:04 -04:00
runtime_volume.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
runtime_volume_common.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
runtime_worker.go create runtime's worker queue before queuing any job 2024-07-09 11:15:29 +02:00
service.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
sqlite_state.go enable gofumpt formatter 2025-11-11 12:32:46 +01:00
sqlite_state_internal.go Remove BoltDB state support 2025-10-28 12:09:04 -04:00
state.go Remove BoltDB state support 2025-10-28 12:09:04 -04:00
state_test.go enable gofumpt formatter 2025-11-11 12:32:46 +01:00
stats_common.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
stats_freebsd.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
stats_linux.go Remove ContainerStats.PerCPU: CGV1 only 2025-11-12 15:15:34 -05:00
storage.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
util.go enable gofumpt formatter 2025-11-11 12:32:46 +01:00
util_freebsd.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
util_linux.go libpod/util_linux.go: Remove Cgroups v1 2025-11-12 15:15:33 -05:00
util_linux_test.go lint: reenable revive unused-parameter check 2025-10-01 10:42:08 -04:00
util_test.go libpod: fix mount order for "/" volume 2025-05-20 15:52:27 +02:00
volume.go libpod: fix Volume.Mount() returning empty path for plugin volumes 2026-01-19 14:54:27 +01:00
volume_inspect.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
volume_internal.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
volume_internal_common.go Bump Go version to v6 2025-10-23 11:00:15 -04:00
volume_internal_freebsd.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
volume_internal_linux.go chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
volume_test.go libpod: fix Volume.Mount() returning empty path for plugin volumes 2026-01-19 14:54:27 +01:00