mirror of
https://github.com/torvalds/linux.git
synced 2025-08-15 14:11:42 +02:00
block: Fix default IO priority if there is no IO context
Upstream commit53889bcaf5
("block: make __get_task_ioprio() easier to read") changes the IO priority returned to the caller if no IO context is defined for the task. Prior to this commit, the returned IO priority was determined by task_nice_ioclass() and task_nice_ioprio(). Now it is always IOPRIO_DEFAULT, which translates to IOPRIO_CLASS_NONE with priority 0. However, task_nice_ioclass() returns IOPRIO_CLASS_IDLE, IOPRIO_CLASS_RT, or IOPRIO_CLASS_BE depending on the task scheduling policy, and task_nice_ioprio() returns a value determined by task_nice(). This causes regressions in test code checking the IO priority and class of IO operations on tasks with no IO context. Fix the problem by returning the IO priority calculated from task_nice_ioclass() and task_nice_ioprio() if no IO context is defined to match earlier behavior. Fixes:53889bcaf5
("block: make __get_task_ioprio() easier to read") Cc: Jens Axboe <axboe@kernel.dk> Cc: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Guenter Roeck <linux@roeck-us.net> Reviewed-by: Yu Kuai <yukuai3@huawei.com> Reviewed-by: Damien Le Moal <dlemoal@kernel.org> Link: https://lore.kernel.org/r/20250731044953.1852690-1-linux@roeck-us.net Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
d459b164a4
commit
e2ba58ccc9
1 changed files with 2 additions and 1 deletions
|
@ -60,7 +60,8 @@ static inline int __get_task_ioprio(struct task_struct *p)
|
|||
int prio;
|
||||
|
||||
if (!ioc)
|
||||
return IOPRIO_DEFAULT;
|
||||
return IOPRIO_PRIO_VALUE(task_nice_ioclass(p),
|
||||
task_nice_ioprio(p));
|
||||
|
||||
if (p != current)
|
||||
lockdep_assert_held(&p->alloc_lock);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue