Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Nov 2020 11:48:33 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r368102 - stable/12/sys/fs/msdosfs
Message-ID:  <202011271148.0ARBmXFZ095732@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Fri Nov 27 11:48:33 2020
New Revision: 368102
URL: https://svnweb.freebsd.org/changeset/base/368102

Log:
  MFC r367890:
  msdosfs: Add trivial support for suspension.

Modified:
  stable/12/sys/fs/msdosfs/msdosfs_vfsops.c
  stable/12/sys/fs/msdosfs/msdosfs_vnops.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/fs/msdosfs/msdosfs_vfsops.c
==============================================================================
--- stable/12/sys/fs/msdosfs/msdosfs_vfsops.c	Fri Nov 27 11:12:59 2020	(r368101)
+++ stable/12/sys/fs/msdosfs/msdosfs_vfsops.c	Fri Nov 27 11:48:33 2020	(r368102)
@@ -941,6 +941,12 @@ loop:
 	error = msdosfs_fsiflush(pmp, waitfor);
 	if (error != 0)
 		allerror = error;
+
+	if (allerror == 0 && waitfor == MNT_SUSPEND) {
+		MNT_ILOCK(mp);
+		mp->mnt_kern_flag |= MNTK_SUSPEND2 | MNTK_SUSPENDED;
+		MNT_IUNLOCK(mp);
+	}
 	return (allerror);
 }
 

Modified: stable/12/sys/fs/msdosfs/msdosfs_vnops.c
==============================================================================
--- stable/12/sys/fs/msdosfs/msdosfs_vnops.c	Fri Nov 27 11:12:59 2020	(r368101)
+++ stable/12/sys/fs/msdosfs/msdosfs_vnops.c	Fri Nov 27 11:48:33 2020	(r368102)
@@ -849,7 +849,7 @@ msdosfs_fsync(struct vop_fsync_args *ap)
 	* Non-critical metadata for associated directory entries only
 	* gets synced accidentally, as in most file systems.
 	*/
-	if (ap->a_waitfor == MNT_WAIT) {
+	if (ap->a_waitfor != MNT_NOWAIT) {
 		devvp = VTODE(ap->a_vp)->de_pmp->pm_devvp;
 		vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
 		allerror = VOP_FSYNC(devvp, MNT_WAIT, ap->a_td);
@@ -857,7 +857,7 @@ msdosfs_fsync(struct vop_fsync_args *ap)
 	} else
 		allerror = 0;
 
-	error = deupdat(VTODE(ap->a_vp), ap->a_waitfor == MNT_WAIT);
+	error = deupdat(VTODE(ap->a_vp), ap->a_waitfor != MNT_NOWAIT);
 	if (allerror == 0)
 		allerror = error;
 	return (allerror);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202011271148.0ARBmXFZ095732>