block: fix default IO priority handling
authorDamien Le Moal <damien.lemoal@wdc.com>
Wed, 11 Aug 2021 03:37:02 +0000 (12:37 +0900)
committerJens Axboe <axboe@kernel.dk>
Wed, 18 Aug 2021 13:23:15 +0000 (07:23 -0600)
commite70344c05995a190a56bbd1a23dc2218bcc8c924
tree36a1c67d06e9d74264bc6289e09127dff37c4fa7
parent202bc942c5cd4340d37b06c4e0b8b03f9925d818
block: fix default IO priority handling

The default IO priority is the best effort (BE) class with the
normal priority level IOPRIO_NORM (4). However, get_task_ioprio()
returns IOPRIO_CLASS_NONE/IOPRIO_NORM as the default priority and
get_current_ioprio() returns IOPRIO_CLASS_NONE/0. Let's be consistent
with the defined default and have both of these functions return the
default priority IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, IOPRIO_NORM) when
the user did not define another default IO priority for the task.

In include/uapi/linux/ioprio.h, introduce the IOPRIO_BE_NORM macro as
an alias to IOPRIO_NORM to clarify that this default level applies to
the BE priotity class. In include/linux/ioprio.h, define the macro
IOPRIO_DEFAULT as IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, IOPRIO_BE_NORM)
and use this new macro when setting a priority to the default.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Link: https://lore.kernel.org/r/20210811033702.368488-7-damien.lemoal@wdc.com
[axboe: drop unnecessary lightnvm change]
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bfq-iosched.c
block/ioprio.c
include/linux/ioprio.h
include/uapi/linux/ioprio.h