flush_scheduled_work() is deprecated and scheduled to be removed.
Directly cancel aoedev->work on free instead of depending on
flush_scheduled_works().
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: "Ed L. Cashin" <ecashin@coraid.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
 {
        struct aoetgt **t, **e;
 
+       cancel_work_sync(&d->work);
        if (d->gd) {
                aoedisk_rm_sysfs(d);
                del_gendisk(d->gd);
                all = !strncmp(buf, "all", 3);
        }
 
-       flush_scheduled_work();
        spin_lock_irqsave(&devlist_lock, flags);
        dd = &devlist;
        while ((d = *dd)) {
        struct aoedev *d;
        ulong flags;
 
-       flush_scheduled_work();
-
        while ((d = devlist)) {
                devlist = d->next;