Newer kernels allow passing a value of '0' for resetting ioprio,
and our check for if (td->ioprio) doesn't allow passing a value of
0 into sys_ioprio_set(). So seperate the setting from the value by
adding a ->ioprio_set bool.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
goto err;
}
- if (td->ioprio) {
+ if (td->ioprio_set) {
if (ioprio_set(IOPRIO_WHO_PROCESS, 0, td->ioprio) == -1) {
td_verror(td, errno, "ioprio_set");
goto err;
volatile int terminate;
volatile int runstate;
unsigned int ioprio;
+ unsigned int ioprio_set;
unsigned int last_was_sync;
char *mmapfile;
td->ioprio &= mask;
td->ioprio |= *val << IOPRIO_CLASS_SHIFT;
+ td->ioprio_set = 1;
return 0;
}
if ((td->ioprio >> IOPRIO_CLASS_SHIFT) == 0)
td->ioprio |= IOPRIO_CLASS_BE << IOPRIO_CLASS_SHIFT;
+ td->ioprio_set = 1;
return 0;
}
#endif