The branch main has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=7f682bdcabdaf95ded6a69994344ddbc84fd36db

commit 7f682bdcabdaf95ded6a69994344ddbc84fd36db
Author:     Konstantin Belousov <[email protected]>
AuthorDate: 2021-03-03 17:43:17 +0000
Commit:     Konstantin Belousov <[email protected]>
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 {
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to