]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
kernel/fork: clear PF_BLOCK_TS in copy_process()
authorUsama Arif <usama.arif@linux.dev>
Tue, 16 Jun 2026 14:15:17 +0000 (07:15 -0700)
committerJens Axboe <axboe@kernel.dk>
Tue, 16 Jun 2026 16:07:36 +0000 (10:07 -0600)
commitfd38b75c4b43295b10d69772a46d1c74dbd6fc81
tree3e928518f8bb8e474c588e6f0bf585b55d512bab
parent9cbbac29d752fb5d95e375fa3685a359b89caa0a
kernel/fork: clear PF_BLOCK_TS in copy_process()

PF_BLOCK_TS is only set in blk_time_get_ns() when current->plug is
non-NULL, and blk_finish_plug() clears it via __blk_flush_plug()
before NULLing the plug pointer.  copy_process() breaks the
invariant by inheriting PF_BLOCK_TS from the parent while resetting
the child's plug to NULL.

Clear PF_BLOCK_TS alongside that assignment so callers can rely on
"PF_BLOCK_TS set implies current->plug != NULL" and dereference
current->plug unguarded.

Fixes: 06b23f92af87 ("block: update cached timestamp post schedule/preemption")
Cc: stable@vger.kernel.org
Signed-off-by: Usama Arif <usama.arif@linux.dev>
Link: https://patch.msgid.link/20260616141604.328820-2-usama.arif@linux.dev
Signed-off-by: Jens Axboe <axboe@kernel.dk>
kernel/fork.c