summaryrefslogtreecommitdiffstats
path: root/sys/fs/specfs
diff options
context:
space:
mode:
authormckusick <mckusick@FreeBSD.org>2001-03-07 07:09:55 +0000
committermckusick <mckusick@FreeBSD.org>2001-03-07 07:09:55 +0000
commit61db3f4296e7cbf26765b9523064a58053f033d1 (patch)
treebf90f85e1534824e6dd81dcd98746b86c51cf6c1 /sys/fs/specfs
parent48c0c7d0fdb3955d984e7d3880153b7b5c711565 (diff)
downloadFreeBSD-src-61db3f4296e7cbf26765b9523064a58053f033d1.zip
FreeBSD-src-61db3f4296e7cbf26765b9523064a58053f033d1.tar.gz
Fixes to track snapshot copy-on-write checking in the specinfo
structure rather than assuming that the device vnode would reside in the FFS filesystem (which is obviously a broken assumption with the device filesystem).
Diffstat (limited to 'sys/fs/specfs')
-rw-r--r--sys/fs/specfs/spec_vnops.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/fs/specfs/spec_vnops.c b/sys/fs/specfs/spec_vnops.c
index 35a0a49..2940f40 100644
--- a/sys/fs/specfs/spec_vnops.c
+++ b/sys/fs/specfs/spec_vnops.c
@@ -455,8 +455,8 @@ spec_strategy(ap)
bp->b_flags &= ~B_VALIDSUSPWRT;
if (LIST_FIRST(&bp->b_dep) != NULL)
buf_start(bp);
- if ((vp->v_flag & VCOPYONWRITE) &&
- (error = VOP_COPYONWRITE(vp, bp)) != 0 &&
+ if ((vp->v_flag & VCOPYONWRITE) && vp->v_rdev->si_copyonwrite &&
+ (error = (*vp->v_rdev->si_copyonwrite)(vp, bp)) != 0 &&
error != EOPNOTSUPP) {
bp->b_io.bio_error = error;
bp->b_io.bio_flags |= BIO_ERROR;
OpenPOWER on IntegriCloud