summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2000-06-16 08:48:51 +0000
committerphk <phk@FreeBSD.org>2000-06-16 08:48:51 +0000
commit4ec91666fac25fe075871c6194581e7842223b07 (patch)
treea9814424289102f1430da05820c25eec0c2114f2 /sys/ufs
parent0bbfeb1258f95995e684cee4ce92b26361d8a6b5 (diff)
downloadFreeBSD-src-4ec91666fac25fe075871c6194581e7842223b07.zip
FreeBSD-src-4ec91666fac25fe075871c6194581e7842223b07.tar.gz
Virtualizes & untangles the bioops operations vector.
Ref: Message-ID: <18317.961014572@critter.freebsd.dk> To: current@
Diffstat (limited to 'sys/ufs')
-rw-r--r--sys/ufs/ffs/ffs_softdep.c2
-rw-r--r--sys/ufs/ffs/ffs_softdep_stub.c16
-rw-r--r--sys/ufs/ffs/ffs_vnops.c7
3 files changed, 21 insertions, 4 deletions
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index ce48d43..6574363 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -222,8 +222,6 @@ struct bio_ops bioops = {
softdep_disk_io_initiation, /* io_start */
softdep_disk_write_complete, /* io_complete */
softdep_deallocate_dependencies, /* io_deallocate */
- softdep_fsync, /* io_fsync */
- softdep_process_worklist, /* io_sync */
softdep_move_dependencies, /* io_movedeps */
softdep_count_dependencies, /* io_countdeps */
};
diff --git a/sys/ufs/ffs/ffs_softdep_stub.c b/sys/ufs/ffs/ffs_softdep_stub.c
index cbfb32d..8845fbd 100644
--- a/sys/ufs/ffs/ffs_softdep_stub.c
+++ b/sys/ufs/ffs/ffs_softdep_stub.c
@@ -253,4 +253,20 @@ softdep_sync_metadata(ap)
return (0);
}
+
+int
+softdep_fsync(vp)
+ struct vnode *vp; /* the "in_core" copy of the inode */
+{
+
+ return (0);
+}
+
+int
+softdep_process_worklist(matchmnt)
+ struct mount *matchmnt;
+{
+ return (0);
+}
+
#endif /* SOFTUPDATES not configured in */
diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c
index 7d3b2c3..36aae4c 100644
--- a/sys/ufs/ffs/ffs_vnops.c
+++ b/sys/ufs/ffs/ffs_vnops.c
@@ -175,7 +175,7 @@ loop:
continue;
if (!wait && LIST_FIRST(&bp->b_dep) != NULL &&
(bp->b_flags & B_DEFERRED) == 0 &&
- bioops.io_countdeps && (*bioops.io_countdeps)(bp, 0)) {
+ buf_countdeps(bp, 0)) {
bp->b_flags |= B_DEFERRED;
continue;
}
@@ -278,5 +278,8 @@ loop:
}
}
splx(s);
- return (UFS_UPDATE(vp, wait));
+ error = UFS_UPDATE(vp, wait);
+ if (error == 0 && vp->v_mount && (vp->v_mount->mnt_flag & MNT_SOFTDEP))
+ error = softdep_fsync(vp);
+ return (error);
}
OpenPOWER on IntegriCloud