Currently, filesystem freeze is implemented inside freeze_go_sync(), a
glock state transition callback. It turns out that in some scenarios,
freezing the filesystem in such a callback can deadlock. To prevent
that from happening, rework the freeze / thaw logic and move it out of
the glock state engine.
Andreas Gruenbacher (8):
gfs2: Rename remaining "transaction" glock references
gfs2: Rename the {freeze,thaw}_super callbacks
gfs2: Rename gfs2_freeze_lock{ => _shared }
gfs2: Reconfiguring frozen filesystem already rejected
gfs2: Rename SDF_{FS_FROZEN => FREEZE_INITIATOR}
gfs2: Rework freeze / thaw logic
gfs2: Replace sd_freeze_state with SDF_FROZEN flag
gfs2: gfs2_freeze_lock_shared cleanup
fs/gfs2/glock.c | 4 +-
fs/gfs2/glops.c | 52 +++++-------
fs/gfs2/incore.h | 10 +--
fs/gfs2/log.c | 11 +--
fs/gfs2/ops_fstype.c | 15 +---
fs/gfs2/recovery.c | 28 +++----
fs/gfs2/super.c | 186 +++++++++++++++++++++++++++++++++----------
fs/gfs2/super.h | 1 +
fs/gfs2/sys.c | 4 +-
fs/gfs2/trans.c | 3 +-
fs/gfs2/util.c | 45 ++++-------
fs/gfs2/util.h | 3 +-
12 files changed, 206 insertions(+), 156 deletions(-)
--
2.40.0