cgroup_cancel_fork(9)
π cgroup_cancel_fork β Kernel API Manual, bestie edition π
okay so this page is cgroup_cancel_fork(9), from the Kernel API Manual. It's a kernel-internals function, so grab a lil snack and let's get into it π
β¨ NAME β¨
cgroup_cancel_fork β the function that gets called if a fork failed after cgroup_can_fork() already said yes π
πΈ SYNOPSIS πΈ
void cgroup_cancel_fork (struct task_struct *child , struct kernel_clone_args *kargs );
π¦ ARGUMENTS π¦
childβ the child process πΆ like, the actual task_struct of the little guy that was supposed to be bornkargsβ the arguments that were passed in to create the child process π
π DESCRIPTION π
So here's the tea β: this one is the cleanup crew. It calls the cancel_fork callbacks β but only if a fork failed after cgroup_can_fork already succeeded. Timing matters, bestie β°
And it also cleans up the references we took while preparing a new css_set for the child process back in cgroup_can_fork. Basically undoing the prep work so nothing leaks, no cap π§Ήβ¨
Lowkey a "we already started, then it went sideways, pls tidy up" situation. If you call it at the wrong time you're not matching the original contract, so keep the after in mind β it's doing the heavy lifting there π
π SEE ALSO π
Kernel file ./kernel/cgroup/cgroup.c, plus the entire cgroup cinematic universe: cgroup_ssid_enabled(9), cgroup_on_dfl(9), cgroup_e_css_by_mask(9), cgroup_e_css(9), cgroup_get_e_css(9), __cgroup_task_count(9), cgroup_task_count(9), for_each_css(9), do_each_subsys_mask(9), css_set_populated(9), css_update_populated(9), css_set_update_populated(9), css_set_move_task(9), compare_css_sets(9), find_existing_css_set(9), allocate_cgrp_cset_links(9), link_css_set(9), find_css_set(9), cgroup_file_mode(9), cgroup_calc_subtree_ss_mask(9), cgroup_kn_unlock(9), cgroup_kn_lock_live(9), css_clear_dir(9), css_populate_dir(9), cgroup_attach_lock(9), cgroup_attach_unlock(9), cgroup_migrate_add_task(9), cgroup_taskset_first(9), cgroup_taskset_next(9), cgroup_migrate_execute(9), cgroup_migrate_vet_dst(9), cgroup_migrate_finish(9), cgroup_migrate_add_src(9), cgroup_migrate_prepare_dst(9), cgroup_migrate(9), cgroup_attach_task(9), cgroup_update_dfl_csses(9), cgroup_lock_and_drain_offline(9), cgroup_save_control(9), cgroup_propagate_control(9), cgroup_restore_control(9), cgroup_apply_control_enable(9), cgroup_apply_control_disable(9), cgroup_apply_control(9), cgroup_finalize_control(9), cgroup_enable_threaded(9), cgroup_tryget_css(9), cgroup_addrm_files(9), cgroup_rm_cftypes(9), cgroup_add_cftypes(9), cgroup_add_dfl_cftypes(9), cgroup_add_legacy_cftypes(9), cgroup_file_notify(9), cgroup_file_show(9), css_next_child(9), css_next_descendant_pre(9), css_rightmost_descendant(9), css_next_descendant_post(9), css_has_online_children(9), css_task_iter_advance_css_set(9), css_task_iter_start(9), css_task_iter_next(9), css_task_iter_end(9), css_create(9), kill_css_sync(9), kill_css_finish(9), cgroup_destroy_locked(9), cgroup_init_early(9), cgroup_init(9), cgroup_fork(9), cgroup_v1v2_get_from_file(9), cgroup_get_from_file(9), cgroup_css_set_fork(9), cgroup_css_set_put_fork(9), cgroup_can_fork(9), cgroup_post_fork(9), cgroup_task_exit(9), css_tryget_online_from_dir(9), css_from_id(9), cgroup_get_from_path(9), cgroup_v1v2_get_from_fd(9), cgroup_get_from_fd(9), cgroup_parse_float(9).
that's a LOT of friends and honestly? iconic of them π
π«Ά the sign-off π«Ά
This page lives in ./kernel/cgroup and it's dated October 2026 β mark your calendars bestie, that's the version stamp πβ¨ mwah, go read cgroup_can_fork(9) next, iykyk π§
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms