diff options
author | mckusick <mckusick@FreeBSD.org> | 1999-05-14 01:26:46 +0000 |
---|---|---|
committer | mckusick <mckusick@FreeBSD.org> | 1999-05-14 01:26:46 +0000 |
commit | 365073a06237ea141cd366f9bde9185622f845f0 (patch) | |
tree | 17a7ae01ead9e83d8a57aa26351f27faa4bfdf30 /sys/ufs/ffs/ffs_vnops.c | |
parent | 200224a5c12a3777a5cab83f28359a39329b2700 (diff) | |
download | FreeBSD-src-365073a06237ea141cd366f9bde9185622f845f0.zip FreeBSD-src-365073a06237ea141cd366f9bde9185622f845f0.tar.gz |
Add a hook to ffs_fsync to allow soft updates to get first chance at doing
a sync on the block device for the filesystem. That allows it to push the
bitmap blocks before the inode blocks which greatly reduces the number of
inode rollbacks that need to be done.
Diffstat (limited to 'sys/ufs/ffs/ffs_vnops.c')
-rw-r--r-- | sys/ufs/ffs/ffs_vnops.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c index c44b133..10ccfde 100644 --- a/sys/ufs/ffs/ffs_vnops.c +++ b/sys/ufs/ffs/ffs_vnops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ffs_vnops.c 8.15 (Berkeley) 5/14/95 - * $Id: ffs_vnops.c,v 1.54 1999/01/07 16:14:17 bde Exp $ + * $Id: ffs_vnops.c,v 1.55 1999/03/02 04:04:31 mckusick Exp $ */ #include <sys/param.h> @@ -61,6 +61,8 @@ #include <ufs/ffs/fs.h> #include <ufs/ffs/ffs_extern.h> +#include <miscfs/specfs/specdev.h> + static int ffs_fsync __P((struct vop_fsync_args *)); static int ffs_getpages __P((struct vop_getpages_args *)); static int ffs_putpages __P((struct vop_putpages_args *)); @@ -129,6 +131,9 @@ ffs_fsync(ap) if (vp->v_type == VBLK) { lbn = INT_MAX; + if (vp->v_specmountpoint != NULL && + (vp->v_specmountpoint->mnt_flag & MNT_SOFTDEP)) + softdep_fsync_mountdev(vp); } else { struct inode *ip; ip = VTOI(vp); |