]> git.ipfire.org Git - thirdparty/linux.git/commit
init: flush async file closing
authorChristian Brauner <brauner@kernel.org>
Tue, 6 Feb 2024 15:18:43 +0000 (16:18 +0100)
committerChristian Brauner <brauner@kernel.org>
Thu, 8 Feb 2024 17:41:03 +0000 (18:41 +0100)
commit386dc41cf54dcf44ea40de1aca900f02b756cec0
tree5e8a1d08c186c3081133848e5468109ccb0d2c13
parent6613476e225e090cc9aad49be7fa504e290dd33d
init: flush async file closing

When unpacking the initramfs or when mounting block devices we need to
ensure that any delayed fput() finished to prevent spurious errors.
The init process can be a proper kernel thread or a user mode helper.
In the latter case PF_KTHREAD isn't set. So we need to do both
flush_delayed_work() and task_work_run().

Since we'll port block device opening and closing to regular file open
and closing we need to ensure the same as for the initramfs. So just
make that a little helper.

Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Srikanth Aithal <sraithal@amd.com>
Link: https://lore.kernel.org/r/CA+G9fYttTwsbFuVq10igbSvP5xC6bf_XijM=mpUqrJV=uvUirQ@mail.gmail.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
init/do_mounts.c
init/do_mounts.h
init/initramfs.c