It's been about 5 months since the last v3 RFC for fs freeze. Now that some of us will have time at LSFMM to discuss stuff I figured it would be good to try to get the last pieces, if any discussed, and put out a new patch set based on the latests feedback. This time I boot tested, and stress tested the patches. From what I can tell I confirm nothing regresses, we just end up now with a new world where if your platform does support s3 / s4 we'll kick into gear the automatic kernel freeze. To help with testing, as this is a rather tiny bit obscure area with virtualization, I've gone ahead and extended kdevops with support for always enabling s3 / s4, so it should be easy to test guest bring up there. I've picked out using stress-ng now to have fun stress testing suspend, the insane will try: ./stress-ng --touch 8192 --touch-method creat Resume works but eventually suspend will trickle tons of OOMs and so we gotta find a sweet spot to automate this somehow in fstests somehow. I am not sure how we're gonna test this moving forward on fstests but perhaps worth talking about at LSFMM for ideas. Anyway, your filesystem will not participate in the auto kernel freeze / thaw unless your filesystem gets the kthread freezer junk removed and sets a flag. I'll post 3 patches for the 3 main filesystems after this. I've carried and advanced the SmPL patch for a few years now, and magically it all still works. [0] https://lkml.kernel.org/r/20230114003409.1168311-1-mcgrof@xxxxxxxxxx Luis Chamberlain (6): fs: unify locking semantics for fs freeze / thaw fs: add frozen sb state helpers fs: distinguish between user initiated freeze and kernel initiated freeze fs: move !SB_BORN check early on freeze and add for thaw fs: add iterate_supers_excl() and iterate_supers_reverse_excl() fs: add automatic kernel fs freeze / thaw and remove kthread freezing block/bdev.c | 9 +- fs/ext4/ext4_jbd2.c | 2 +- fs/f2fs/gc.c | 9 +- fs/gfs2/glops.c | 2 +- fs/gfs2/super.c | 11 +- fs/gfs2/sys.c | 12 ++- fs/gfs2/util.c | 7 +- fs/ioctl.c | 14 ++- fs/quota/quota.c | 4 +- fs/super.c | 239 +++++++++++++++++++++++++++++++++-------- fs/xfs/xfs_trans.c | 3 +- include/linux/fs.h | 54 +++++++++- kernel/power/process.c | 15 ++- 13 files changed, 313 insertions(+), 68 deletions(-) -- 2.39.2