git: 7f682bdcabda - main - Rework MOUNTED/DOING SOFTDEP/SUJ macros
Konstantin Belousov
kib at FreeBSD.org
Fri Mar 12 11:32:27 UTC 2021
The branch main has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=7f682bdcabdaf95ded6a69994344ddbc84fd36db
commit 7f682bdcabdaf95ded6a69994344ddbc84fd36db
Author: Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-03-03 17:43:17 +0000
Commit: Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-03-12 11:31:07 +0000
Rework MOUNTED/DOING SOFTDEP/SUJ macros
Now MNT_SOFTDEP indicates that SU are active in any variant +-J, and
SU+J is indicated by MNT_SOFTDEP | MNT_SUJ combination. The reason is
that unmount will be able to easily hide SU from other operations by
clearing MNT_SOFTDEP while keeping the record of the active journal.
Reviewed by: mckusick
Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D29178
---
sys/ufs/ffs/ffs_softdep.c | 1 -
sys/ufs/ufs/inode.h | 10 +++++-----
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index c1a9c300aeff..519a3679cac9 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -3024,7 +3024,6 @@ journal_mount(mp, fs, cred)
MNT_ILOCK(mp);
mp->mnt_flag |= MNT_SUJ;
- mp->mnt_flag &= ~MNT_SOFTDEP;
MNT_IUNLOCK(mp);
/*
diff --git a/sys/ufs/ufs/inode.h b/sys/ufs/ufs/inode.h
index 0169d2903108..a82b4658c0af 100644
--- a/sys/ufs/ufs/inode.h
+++ b/sys/ufs/ufs/inode.h
@@ -265,11 +265,11 @@ struct indir {
#define ITOV(ip) ((ip)->i_vnode)
/* Determine if soft dependencies are being done */
-#define DOINGSOFTDEP(vp) \
- (((vp)->v_mount->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) != 0)
-#define MOUNTEDSOFTDEP(mp) (((mp)->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) != 0)
-#define DOINGSUJ(vp) (((vp)->v_mount->mnt_flag & MNT_SUJ) != 0)
-#define MOUNTEDSUJ(mp) (((mp)->mnt_flag & MNT_SUJ) != 0)
+#define MOUNTEDSOFTDEP(mp) (((mp)->mnt_flag & MNT_SOFTDEP) != 0)
+#define DOINGSOFTDEP(vp) MOUNTEDSOFTDEP((vp)->v_mount)
+#define MOUNTEDSUJ(mp) (((mp)->mnt_flag & (MNT_SOFTDEP | MNT_SUJ)) == \
+ (MNT_SOFTDEP | MNT_SUJ))
+#define DOINGSUJ(vp) MOUNTEDSUJ((vp)->v_mount)
/* This overlays the fid structure (see mount.h). */
struct ufid {
More information about the dev-commits-src-all
mailing list