On Sat, Oct 31 2015, Oliver Neukum wrote: > On Fri, 2015-10-30 at 14:47 +0100, Jiri Kosina wrote: >> Basically the main argument why kthread freezer is not needed boils >> down to >> this: the only facility that is needed during suspend: "no persistent >> fs >> changes are allowed from now on". > > Is that true? Drivers of character devices also may assume > that IO and suspend() wouldn't race (except in fairly clear exceptions) Anything that is a device can hook in to the suspend using the standard call back and make sure no problematic races happen. Filesystems are different partly because the "know" in memory some details of what is persisting on storage, and partly because they aren't devices. Maybe filesystems should be devices .... though that probably wouldn't help much. I would suggest that "the only facility that is needed during suspend" is really "well defined states and well defined transitions". Filesystems need them as well as devices, and frozen kthreads might have been a kludge to try to provide them. NeilBrown