Cancel a work and wait for it to finish
bool cancel_work_sync(struct work_struct * work);
work
the work to cancel
Cancel work and wait for its execution to finish. This function can be used even if the work re-queues itself or migrates to another workqueue. On return from this function, work is guaranteed to be not pending or executing on any CPU.
cancel_work_sync(delayed_work->work) must not be used for delayed_work's. Use cancel_delayed_work_sync instead.
The caller must ensure that the workqueue on which work was last queued can't be destroyed before this function returns.
true if work was pending, false otherwise.