On Tue, May 16, 2017 at 05:39:13PM +0800, Anand Jain wrote: > blkdev_issue_flush() is a blocking function and returns only after > the flush bio is completed, so a module handling more than one > device can't issue flush for all the devices unless it uses worker > thread. > > This patch adds a new function blkdev_issue_flush_no_wait(), which > uses submit_bio() instead of submit_bio_wait(), and accepts the > completion function and data from the caller. Just open code the damn thing, and drop the various superflous checks while you're at it.