WORK_ST_CANCEL
[WORK_ST_CANCEL] = WORK_ST_TASK, /* start queuing task again */
case WORK_ST_CANCEL:
[WORK_ST_CANCEL] = WORK_ST_TIMER, /* start timeout */
case WORK_ST_CANCEL:
[WORK_ST_CANCEL] = WORK_ST_EXEC, /* failed to cancel */
case WORK_ST_CANCEL:
[WORK_ST_CANCEL] = WORK_ST_TASK, /* failed to cancel */
case WORK_ST_CANCEL:
[WORK_ST_CANCEL] = WORK_ST_IDLE, /* can't happen */
MPASS(atomic_read(&work->state) != WORK_ST_CANCEL);
[WORK_ST_CANCEL] = WORK_ST_IDLE, /* cancel and drain */
[WORK_ST_TIMER] = WORK_ST_CANCEL, /* try to cancel */
[WORK_ST_TASK] = WORK_ST_CANCEL, /* try to cancel */
[WORK_ST_CANCEL] = WORK_ST_CANCEL, /* NOP */
case WORK_ST_CANCEL:
WORK_ST_CANCEL, WORK_ST_IDLE);
WORK_ST_CANCEL, WORK_ST_IDLE);
[WORK_ST_CANCEL] = WORK_ST_IDLE, /* cancel and drain */
case WORK_ST_CANCEL:
case WORK_ST_CANCEL: