summaryrefslogtreecommitdiffstats
path: root/sys/ufs/ffs/ffs_vnops.c
diff options
context:
space:
mode:
authormckusick <mckusick@FreeBSD.org>1999-05-14 01:26:46 +0000
committermckusick <mckusick@FreeBSD.org>1999-05-14 01:26:46 +0000
commit365073a06237ea141cd366f9bde9185622f845f0 (patch)
tree17a7ae01ead9e83d8a57aa26351f27faa4bfdf30 /sys/ufs/ffs/ffs_vnops.c
parent200224a5c12a3777a5cab83f28359a39329b2700 (diff)
downloadFreeBSD-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.c7
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);
OpenPOWER on IntegriCloud