diff options
author | Poul-Henning Kamp <phk@FreeBSD.org> | 2005-02-08 18:09:11 +0000 |
---|---|---|
committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2005-02-08 18:09:11 +0000 |
commit | 88e5b12a2020751dfd3368cd88268be36109dbab (patch) | |
tree | 74f26d1c750365766d00443a4a6215c3dda4ede5 /sys/ufs | |
parent | 7990a18c7b5282ac60ca86c478772d24c169f22f (diff) | |
download | src-88e5b12a2020751dfd3368cd88268be36109dbab.tar.gz src-88e5b12a2020751dfd3368cd88268be36109dbab.zip |
Drag another softupdates tentacle back into FFS: Now that FFS's
vop_fsync is separate from the internal use we can do the full job
there.
Notes
Notes:
svn path=/head/; revision=141533
Diffstat (limited to 'sys/ufs')
-rw-r--r-- | sys/ufs/ffs/ffs_softdep.c | 2 | ||||
-rw-r--r-- | sys/ufs/ffs/ffs_vnops.c | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index a9f13104c697..55c303521b83 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -987,7 +987,6 @@ softdep_initialize() /* hooks through which the main kernel code calls us */ softdep_process_worklist_hook = softdep_process_worklist; - softdep_fsync_hook = softdep_fsync; /* initialise bioops hack */ bioops.io_start = softdep_disk_io_initiation; @@ -1006,7 +1005,6 @@ softdep_uninitialize() { softdep_process_worklist_hook = NULL; - softdep_fsync_hook = NULL; hashdestroy(pagedep_hashtbl, M_PAGEDEP, pagedep_hash); hashdestroy(inodedep_hashtbl, M_INODEDEP, inodedep_hash); hashdestroy(newblk_hashtbl, M_NEWBLK, newblk_hash); diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c index c800cb5e8ed0..942a7e2c5fc4 100644 --- a/sys/ufs/ffs/ffs_vnops.c +++ b/sys/ufs/ffs/ffs_vnops.c @@ -160,6 +160,13 @@ ffs_fsync(struct vop_fsync_args *ap) int error; error = ffs_syncvnode(ap->a_vp, ap->a_waitfor); +#ifdef SOFTUPDATES + if (error) + return (error); + if (ap->a_waitfor == MNT_WAIT && + (ap->a_vp->v_mount->mnt_flag & MNT_SOFTDEP)) + error = softdep_fsync(ap->a_vp); +#endif return (error); } |