block: limit block time caching to in_task() context
We should not have any callers of this from non-task context, but Jakub
ran [1] into one from blk-iocost. Rather than risk running into others,
or future ones, just limit blk_time_get_ns() to when it is called from
a task. Any other usage is invalid.
[1] https://lore.kernel.org/lkml/CAHk-=wiOaBLqarS2uFhM1YdwOvCX4CZaWkeyNDY1zONpbYw2ig@mail.gmail.com/
Fixes: da4c8c3d09
("block: cache current nsec time in struct blk_plug")
Reported-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
@ -534,7 +534,7 @@ static inline u64 blk_time_get_ns(void)
|
|||||||
{
|
{
|
||||||
struct blk_plug *plug = current->plug;
|
struct blk_plug *plug = current->plug;
|
||||||
|
|
||||||
if (!plug)
|
if (!plug || !in_task())
|
||||||
return ktime_get_ns();
|
return ktime_get_ns();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user