Hi all, Sometimes, kernel filesystem drivers need the ability to quiesce writes to the filesystem so that the driver can perform some kind of maintenance activity. This capability mostly already exists in the form of filesystem freezing but with the huge caveat that userspace can thaw any frozen fs at any time. If the correctness of the fs maintenance program requires stillness of the filesystem, then this caveat is BAD. Provide a means for the kernel to initiate its own filesystem freezes. A freeze of one type can be shared with a different type of freeze, but nested freezes of the same type are not allowed. A shared freeze remains in effect until both holders thaw the filesystem. This capability will be used (sparingly) by the upcoming xfs online fsck feature; the fsdax pre-removal code; and hopefully one day by suspend. If you're going to start using this mess, you probably ought to just pull from my git trees, which are linked below. This is an extraordinary way to destroy everything. Enjoy! Comments and questions are, as always, welcome. --D kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=kernel-fsfreeze --- Documentation/filesystems/vfs.rst | 6 +- block/bdev.c | 8 +-- fs/f2fs/gc.c | 4 + fs/gfs2/glops.c | 2 - fs/gfs2/super.c | 6 +- fs/gfs2/sys.c | 4 + fs/gfs2/util.c | 2 - fs/ioctl.c | 8 +-- fs/quota/quota.c | 5 +- fs/super.c | 117 ++++++++++++++++++++++++++++++++----- include/linux/fs.h | 16 +++-- 11 files changed, 136 insertions(+), 42 deletions(-)