diff options
-rw-r--r-- | sys/kern/vfs_extattr.c | 3 | ||||
-rw-r--r-- | sys/kern/vfs_syscalls.c | 3 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_vnops.c | 2 |
3 files changed, 6 insertions, 2 deletions
diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c index bdb3639..57a844d 100644 --- a/sys/kern/vfs_extattr.c +++ b/sys/kern/vfs_extattr.c @@ -2546,6 +2546,9 @@ fsync(p, uap) if (vp->v_object) vm_object_page_clean(vp->v_object, 0, 0, 0); error = VOP_FSYNC(vp, fp->f_cred, MNT_WAIT, p); + if (error == 0 && vp->v_mount && (vp->v_mount->mnt_flag & MNT_SOFTDEP)) + error = softdep_fsync(vp); + VOP_UNLOCK(vp, 0, p); return (error); } diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index bdb3639..57a844d 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -2546,6 +2546,9 @@ fsync(p, uap) if (vp->v_object) vm_object_page_clean(vp->v_object, 0, 0, 0); error = VOP_FSYNC(vp, fp->f_cred, MNT_WAIT, p); + if (error == 0 && vp->v_mount && (vp->v_mount->mnt_flag & MNT_SOFTDEP)) + error = softdep_fsync(vp); + VOP_UNLOCK(vp, 0, p); return (error); } diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c index 36aae4c..539f302 100644 --- a/sys/ufs/ffs/ffs_vnops.c +++ b/sys/ufs/ffs/ffs_vnops.c @@ -279,7 +279,5 @@ loop: } splx(s); error = UFS_UPDATE(vp, wait); - if (error == 0 && vp->v_mount && (vp->v_mount->mnt_flag & MNT_SOFTDEP)) - error = softdep_fsync(vp); return (error); } |