Re: [PATCH] init: do_mounts: free the ramfs info of the boot rootfs

From: Breno Leitao

Date: Tue Oct 27 2026 - 05:50:53 EST


On Fri, Oct 16, 2026 at 07:27:58AM -0700, Breno Leitao wrote:
> Kmemleak is reporting the following leak in ramfs_init_fs_context:
>
> unreferenced object 0xffff000080302480 (size 8):
> comm "swapper/0", pid 0, jiffies 4294667306
> hex dump (first 8 bytes):
> ed 01 00 00 00 00 00 00 ........
> backtrace (crc bea23b04):
> __kmalloc_cache_noprof+0x28c/0x5a0
> ramfs_init_fs_context+0x5c/0xf8
> rootfs_init_fs_context+0x30/0x40
> alloc_fs_context+0x4c0/0x6a8
> fs_context_for_mount+0x28/0x40
> vfs_kern_mount+0x40/0x220
> init_mount_tree+0x80/0x440
> mnt_init+0x138/0x170
> vfs_caches_init+0x2c/0x48
> start_kernel+0x350/0x3f8
>
> When init pivot_root()s away from a ramfs-backed boot rootfs and
> unmounts it, the rootfs superblock is killed with kill_anon_super() and
> the struct ramfs_fs_info allocated by ramfs_init_fs_context() is never
> freed.
>
> Kill a ramfs-backed rootfs with ramfs_kill_sb(). A tmpfs-backed one keeps
> kill_anon_super(), as shmem frees its info in ->put_super.
>
> Fixes: 576ee5dfd459 ("fs: add immutable rootfs")
> Signed-off-by: Breno Leitao <leitao@xxxxxxxxxx>

Ping?