On Sep 17, 2024 / 14:32, Damien Le Moal wrote: > Commit 734e1a860312 ("block: Prevent deadlocks when switching > elevators") introduced the function elv_iosched_load_module() to allow > loading an elevator module outside of elv_iosched_store() with the > target device queue not frozen, to avoid deadlocks. However, the "none" > scheduler does not have a module and as a result, > elv_iosched_load_module() always returns an error when trying to switch > to this valid scheduler. This unexpected behavior (setting none scheduler has no effect) was found by the blktests test case scsi/008 failure. This test case invokes the fio command with the --ioscheduler=none option. > > Fix this by checking that the requested scheduler is "none" and doing > nothing in that case. I confirmed this fix patch avoids the unexpected behavior, and makes scsi/008 pass. > > Reported-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> > Fixes: 734e1a860312 ("block: Prevent deadlocks when switching elevators") > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Damien Le Moal <dlemoal@xxxxxxxxxx> I also run whole blktests applying this patch on top of the v6.11 kernel, and observed no regression. Looks good from testing point of view. Tested-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx>