svn commit: r368102 - stable/12/sys/fs/msdosfs
Konstantin Belousov
kib at FreeBSD.org
Fri Nov 27 11:48:34 UTC 2020
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);
More information about the svn-src-stable
mailing list