CANCEL_WORK_SYNC(9) Driver Basics CANCEL_WORK_SYNC(9)NAMEcancel_work_sync - block until a work_struct´s callback has terminated
SYNOPSIS
int cancel_work_sync(struct work_struct * work);
ARGUMENTS
work
the work which is to be flushed
DESCRIPTION
Returns true if work was pending.
cancel_work_sync will cancel the work if it is queued. If the work´s
callback appears to be running, cancel_work_sync will block until it
has completed.
It is possible to use this function if the work re-queues itself. It
can cancel the work even if it migrates to another workqueue, however
in that case it only guarantees that work->func has completed on the
last queued workqueue.
cancel_work_sync(delayed_work->work) should be used only if ->timer is
not pending, otherwise it goes into a busy-wait loop until the timer
expires.
The caller must ensure that workqueue_struct on which this work was
last queued can´t be destroyed before this function returns.
COPYRIGHTKernel Hackers Manual 2.6. November 2013 CANCEL_WORK_SYNC(9)