On 6/21/22 01:11, Jan Kara wrote: > get_current_ioprio() is used to initialize IO priority of various > requests. As such it should be returning the effective IO priority of > the task (i.e., reflecting the fact that unset IO priority should get > set based on task's CPU priority) so that the conversion is concentrated > in one place. > > Signed-off-by: Jan Kara <jack@xxxxxxx> > --- > include/linux/ioprio.h | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/include/linux/ioprio.h b/include/linux/ioprio.h > index 3d088a88f832..61ed6bb4998e 100644 > --- a/include/linux/ioprio.h > +++ b/include/linux/ioprio.h > @@ -53,10 +53,17 @@ static inline int task_nice_ioclass(struct task_struct *task) > static inline int get_current_ioprio(void) > { > struct io_context *ioc = current->io_context; > + int prio; > > if (ioc) > - return ioc->ioprio; > - return IOPRIO_DEFAULT; > + prio = ioc->ioprio; > + else > + prio = IOPRIO_DEFAULT; > + > + if (IOPRIO_PRIO_CLASS(prio) == IOPRIO_CLASS_NONE) > + prio = IOPRIO_PRIO_VALUE(task_nice_ioclass(current), > + task_nice_ioprio(current)); > + return prio; > } > > /* Looks good to me. Reviewed-by: Damien Le Moal <damien.lemoal@xxxxxxxxxxxxxxxxxx> -- Damien Le Moal Western Digital Research