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