Lines 1371-1376
again:
Link Here
|
1371 |
} |
1371 |
} |
1372 |
KASSERT(!sq_locked, ("sleepqueue chain still locked")); |
1372 |
KASSERT(!sq_locked, ("sleepqueue chain still locked")); |
1373 |
cancelled = ((flags & CS_EXECUTING) != 0); |
1373 |
cancelled = ((flags & CS_EXECUTING) != 0); |
|
|
1374 |
} else if ((c->c_iflags & CALLOUT_PENDING) == 0) { |
1375 |
/* |
1376 |
* Callout isn't executing and wasn't scheduled at all. |
1377 |
*/ |
1378 |
CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", |
1379 |
c, c->c_func, c->c_arg); |
1380 |
CC_UNLOCK(cc); |
1381 |
if (sq_locked) |
1382 |
sleepq_release(&cc_exec_waiting(cc, direct)); |
1383 |
return (0); |
1374 |
} else |
1384 |
} else |
1375 |
cancelled = 1; |
1385 |
cancelled = 1; |
1376 |
|
1386 |
|
Lines 1377-1389
again:
Link Here
|
1377 |
if (sq_locked) |
1387 |
if (sq_locked) |
1378 |
sleepq_release(&cc_exec_waiting(cc, direct)); |
1388 |
sleepq_release(&cc_exec_waiting(cc, direct)); |
1379 |
|
1389 |
|
1380 |
if ((c->c_iflags & CALLOUT_PENDING) == 0) { |
|
|
1381 |
CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p", |
1382 |
c, c->c_func, c->c_arg); |
1383 |
CC_UNLOCK(cc); |
1384 |
return (cancelled); |
1385 |
} |
1386 |
|
1387 |
c->c_iflags &= ~CALLOUT_PENDING; |
1390 |
c->c_iflags &= ~CALLOUT_PENDING; |
1388 |
c->c_flags &= ~CALLOUT_ACTIVE; |
1391 |
c->c_flags &= ~CALLOUT_ACTIVE; |
1389 |
|
1392 |
|