summaryrefslogtreecommitdiff
path: root/sys/compat/netbsd/netbsd_misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/compat/netbsd/netbsd_misc.c')
-rw-r--r--sys/compat/netbsd/netbsd_misc.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/compat/netbsd/netbsd_misc.c b/sys/compat/netbsd/netbsd_misc.c
index 8cf60355bab..6cce5a52396 100644
--- a/sys/compat/netbsd/netbsd_misc.c
+++ b/sys/compat/netbsd/netbsd_misc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: netbsd_misc.c,v 1.8 2000/01/31 19:57:21 deraadt Exp $ */
+/* $OpenBSD: netbsd_misc.c,v 1.9 2001/02/26 16:32:32 art Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1991, 1993
@@ -84,9 +84,11 @@ netbsd_sys_fdatasync(p, v, retval)
return (error);
vp = (struct vnode *)fp->f_data;
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
- if ((error = VOP_FSYNC(vp, fp->f_cred, MNT_WAIT, p)) == 0 &&
- bioops.io_fsync != NULL)
- error = (*bioops.io_fsync)(vp);
+ error = VOP_FSYNC(vp, fp->f_cred, MNT_WAIT, p);
+#ifdef FFS_SOFTUPDATES
+ if (error == 0 && vp->v_mount && (vp->v_mount->mnt_flag & MNT_SOFTDEP))
+ error = softdep_fsync(vp);
+#endif
VOP_UNLOCK(vp, 0, p);
return (error);