backend: fix switch_ioscheduler()
The backend.c function switch_ioscheduler() suffers from several
1) This function only considers the first file of a job. For jobs using
multiple files, the ioscheduler switch will done only for that file.
2) If the job file is a character device, a pipe or a regular file for
which the hosting block device file cannot be determined (e.g. a
remote file), thring to switch the IO scheduler causes a crash as the
file disk_util field is NULL.
Fix both problems by introducing the helper function set_ioscheduler()
and changing switch_ioscheduler() to repeatdly call this helper for all
files of the job, ignoring character device files, pipe files and files
without a hosting device information.
Also update the man page to better explain when the ioscheduler option
Signed-off-by: Damien Le Moal <email@example.com>
Signed-off-by: Jens Axboe <firstname.lastname@example.org>
2 files changed