Phillip Susi <phill@xxxxxxxxxxxx> writes: > I was trying to do this. I think the right place is in > blkdev_issue_flush(), but apparently bdev->bd_device is not the same > struct device that gets suspended. I can't seem to work out where the > right struct device is to pass to pm_runtime_suspended() and skip the > flush operation. I don't know what I was thinking yesterday. It can't rely on pm_runtime_suspended() because it would continue to flush and reset the suspend timer before it ever gets suspended. I wonder if it could use the performance counters? Whenever a flush is done, and also when suspending, store the value of the write counter, and only if it has changed, issue the flush, otherwise skip it?