public inbox for linux-efi@vger.kernel.org
 help / color / mirror / Atom feed
From: Christian Brauner <brauner@kernel.org>
To: linux-fsdevel@vger.kernel.org, jack@suse.cz, rafael@kernel.org
Cc: Christian Brauner <brauner@kernel.org>,
	Ard Biesheuvel <ardb@kernel.org>,
	linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org,
	James Bottomley <James.Bottomley@hansenpartnership.com>,
	mcgrof@kernel.org, hch@infradead.org, david@fromorbit.com,
	djwong@kernel.org, pavel@kernel.org, peterz@infradead.org,
	mingo@redhat.com, will@kernel.org, boqun.feng@gmail.com
Subject: [PATCH 0/6] power: wire-up filesystem freeze/thaw with suspend/resume
Date: Tue,  1 Apr 2025 02:32:45 +0200	[thread overview]
Message-ID: <20250401-work-freeze-v1-0-d000611d4ab0@kernel.org> (raw)
In-Reply-To: <20250331-work-freeze-v1-0-6dfbe8253b9f@kernel.org>

The whole shebang can also be found at:
https://web.git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git/log/?h=work.freeze

I know nothing about power or hibernation. I've tested it as best as I
could. Works for me (TM).

I need to catch some actual sleep now...

---

Now all the pieces are in place to actually allow the power subsystem to
freeze/thaw filesystems during suspend/resume. Filesystems are only
frozen and thawed if the power subsystem does actually own the freeze.

Othwerwise it risks thawing filesystems it didn't own. This could be
done differently be e.g., keeping the filesystems that were actually
frozen on a list and then unfreezing them from that list. This is
disgustingly unclean though and reeks of an ugly hack.

If the filesystem is already frozen by the time we've frozen all
userspace processes we don't care to freeze it again. That's userspace's
job once the process resumes. We only actually freeze filesystems if we
absolutely have to and we ignore other failures to freeze.

We could bubble up errors and fail suspend/resume if the error isn't
EBUSY (aka it's already frozen) but I don't think that this is worth it.
Filesystem freezing during suspend/resume is best-effort. If the user
has 500 ext4 filesystems mounted and 4 fail to freeze for whatever
reason then we simply skip them.

What we have now is already a big improvement and let's see how we fare
with it before making our lives even harder (and uglier) than we have
to.

Signed-off-by: Christian Brauner <brauner@kernel.org>
---
Christian Brauner (3):
      fs: add owner of freeze/thaw
      fs: allow pagefault based writers to be frozen
      power: freeze filesystems during suspend/resume

Luis Chamberlain (3):
      ext4: replace kthread freezing with auto fs freezing
      btrfs: replace kthread freezing with auto fs freezing
      xfs: replace kthread freezing with auto fs freezing

 fs/btrfs/disk-io.c          |  4 +--
 fs/btrfs/scrub.c            |  2 +-
 fs/ext4/mballoc.c           |  2 +-
 fs/ext4/super.c             |  3 --
 fs/f2fs/gc.c                |  6 ++--
 fs/gfs2/super.c             | 20 ++++++-----
 fs/gfs2/sys.c               |  4 +--
 fs/ioctl.c                  |  8 ++---
 fs/super.c                  | 82 ++++++++++++++++++++++++++++++++++++---------
 fs/xfs/scrub/fscounters.c   |  4 +--
 fs/xfs/xfs_discard.c        |  2 +-
 fs/xfs/xfs_log.c            |  3 +-
 fs/xfs/xfs_log_cil.c        |  2 +-
 fs/xfs/xfs_mru_cache.c      |  2 +-
 fs/xfs/xfs_notify_failure.c |  6 ++--
 fs/xfs/xfs_pwork.c          |  2 +-
 fs/xfs/xfs_super.c          | 14 ++++----
 fs/xfs/xfs_trans_ail.c      |  3 --
 fs/xfs/xfs_zone_gc.c        |  2 --
 include/linux/fs.h          | 16 ++++++---
 kernel/power/hibernate.c    | 13 ++++++-
 kernel/power/suspend.c      |  8 +++++
 22 files changed, 139 insertions(+), 69 deletions(-)
---
base-commit: a68c99192db8060f383a2680333866c0be688ece
change-id: 20250401-work-freeze-693b5b5a78e0


  parent reply	other threads:[~2025-04-01  0:33 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20250329-work-freeze-v2-0-a47af37ecc3d@kernel.org>
2025-03-31 12:42 ` [PATCH 0/2] efivarfs: support freeze/thaw Christian Brauner
2025-03-31 12:42   ` [PATCH 1/2] libfs: export find_next_child() Christian Brauner
2025-03-31 12:42   ` [PATCH 2/2] efivarfs: support freeze/thaw Christian Brauner
2025-03-31 14:46     ` James Bottomley
2025-03-31 15:03       ` Christian Brauner
2025-04-01 19:31     ` James Bottomley
2025-04-02  7:44       ` Christian Brauner
2025-03-31 14:05   ` [PATCH 0/2] " Ard Biesheuvel
2025-04-01  0:32   ` Christian Brauner [this message]
2025-04-01  0:32     ` [PATCH 1/6] ext4: replace kthread freezing with auto fs freezing Christian Brauner
2025-04-01  9:16       ` Jan Kara
2025-04-01  9:35         ` Christian Brauner
2025-04-01 10:08           ` Jan Kara
2025-04-01  0:32     ` [PATCH 2/6] btrfs: " Christian Brauner
2025-04-01  0:32     ` [PATCH 3/6] xfs: " Christian Brauner
2025-04-01  1:11       ` Dave Chinner
2025-04-01  7:17         ` Christian Brauner
2025-04-01 11:35           ` Dave Chinner
2025-04-01 12:45             ` Christian Brauner
2025-04-01  0:32     ` [PATCH 4/6] fs: add owner of freeze/thaw Christian Brauner
2025-04-01  0:32     ` [PATCH 5/6] fs: allow pagefault based writers to be frozen Christian Brauner
2025-04-01  0:32     ` [PATCH 6/6] power: freeze filesystems during suspend/resume Christian Brauner
2025-04-01  8:16     ` [PATCH 0/6] power: wire-up filesystem freeze/thaw with suspend/resume Christian Brauner
2025-04-01  9:32     ` Jan Kara
2025-04-01 13:03       ` Christian Brauner
2025-04-01 16:57         ` Jan Kara
2025-04-02 14:07           ` [PATCH v2 0/4] " Christian Brauner
2025-04-02 14:07             ` [PATCH v2 1/4] fs: add owner of freeze/thaw Christian Brauner
2025-04-03 14:56               ` Jan Kara
2025-04-03 19:33                 ` Christian Brauner
2025-04-04 10:24                 ` [PATCH] fs: allow nesting with FREEZE_EXCL Christian Brauner
2025-04-07  9:08                   ` Christoph Hellwig
2025-05-07 11:18                   ` Jan Kara
2025-05-09 10:38                     ` Christian Brauner
2025-04-02 14:07             ` [PATCH v2 2/4] fs: allow all writers to be frozen Christian Brauner
2025-04-02 15:32               ` Christian Brauner
2025-04-02 16:03                 ` James Bottomley
2025-04-02 16:13                   ` Christian Brauner
2025-04-03 14:59               ` Jan Kara
2025-04-02 14:07             ` [PATCH v2 3/4] power: freeze filesystems during suspend/resume Christian Brauner
2025-04-03 16:29               ` Jan Kara
2025-04-02 14:07             ` [PATCH v2 4/4] kernfs: add warning about implementing freeze/thaw Christian Brauner
2025-04-03 15:00               ` Jan Kara
2025-07-20 19:23             ` [PATCH v2 0/4] power: wire-up filesystem freeze/thaw with suspend/resume Askar Safin
2025-07-21 12:09               ` Jan Kara
2025-08-04  5:31                 ` Miklos Szeredi
2025-08-04  6:02                   ` Askar Safin
2025-08-04  6:51                     ` Sergey Senozhatsky
2025-04-01 14:14     ` [PATCH 0/6] " Peter Zijlstra
2025-04-01 14:40       ` Christian Brauner
2025-04-01 14:59         ` Peter Zijlstra
2025-04-01 17:02     ` James Bottomley
2025-04-02  7:46       ` Christian Brauner
2025-04-08 15:43         ` James Bottomley
2025-04-08 17:09           ` Luis Chamberlain
2025-04-08 17:20             ` Luis Chamberlain
2025-04-08 17:26               ` James Bottomley
2025-04-08 17:24             ` James Bottomley
2025-04-09  7:17           ` Christian Brauner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250401-work-freeze-v1-0-d000611d4ab0@kernel.org \
    --to=brauner@kernel.org \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=ardb@kernel.org \
    --cc=boqun.feng@gmail.com \
    --cc=david@fromorbit.com \
    --cc=djwong@kernel.org \
    --cc=hch@infradead.org \
    --cc=jack@suse.cz \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    --cc=mingo@redhat.com \
    --cc=pavel@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rafael@kernel.org \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox