summaryrefslogtreecommitdiff
path: root/tools/tracing/rtla/example/git@git.tavy.me:linux.git
diff options
context:
space:
mode:
authorPavel Tikhomirov <ptikhomirov@virtuozzo.com>2026-03-18 13:21:50 +0100
committerChristian Brauner <brauner@kernel.org>2026-03-20 14:44:26 +0100
commit39c8806e2d887559237cd10f084c06f0223c6d45 (patch)
tree762bd362675b923a840fc517ab8060fe1d1507ea /tools/tracing/rtla/example/git@git.tavy.me:linux.git
parentd9c857aee2ebcdf5e9d81718b78b7966b8eee876 (diff)
pid: check init is created first after idr alloc
This moves the condition (tid != 1 && !tmp->child_reaper) to after idr alloc, so it not only covers that first process in pid namespace has pid 1 in case of clone3(set_tid) requesting wrong pid, but also if idr itself gives wrong pid for some reason. This could've been the case before this patch, when creating first process the alloc_pid()->pidfs_add_pid() code path fails, so that the idr->idr_next is non zero anymore and next process calling to alloc_pid(), will get 2 as a pid from idr_alloc_cyclic(). Though thanks to PIDNS_ADDING logic, free_pid() disables further pid allocation in this case and it does not lead to any real problem. Note: This is also a preparation for the next patch in the series, which will introduce an ability of creating init from the task different to the task which had created the pid namespace. Needed to make sure that init is always first, even in this new case. -- Suggested-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Oleg Nesterov <oleg@redhat.com> Acked-by: Andrei Vagin <avagin@google.com> Signed-off-by: Pavel Tikhomirov <ptikhomirov@virtuozzo.com> Link: https://patch.msgid.link/20260318122157.280595-3-ptikhomirov@virtuozzo.com v3: Split from main commit. Merge two checks of ->child_reaper into one. v4: Update commit message about PIDNS_ADDING. v5: Add Andrei's review tag. Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'tools/tracing/rtla/example/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions