On Fri, Mar 16, 2012 at 05:10:48PM -0400, Alan Stern wrote: > I don't understand. How would we miss a change of medium if we cancel > the existing work item and resubmit in on a non-freezable workqueue? > > If the work item wasn't queued to begin with, cancelling it won't > change anything. If the work item has already started running, > cancelling it won't do anything. > > If the work item is queued but hasn't started running yet (perhaps > because the workqueue is already frozen), the cancel call will succeed > and then the work item will run on the non-freezable workqueue. In > turn, the freezer will wait until disk_clear_events() finishes, which > means it will wait until the work item finishes. > > Either way, the medium change will be detected. The one danger is that > after the work item is cancelled, some other thread might resubmit it > to the freezable workqueue before it can be put on the non-freezable > workqueue. Why not just lock out freezing across that issue / flush section? -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html