aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/vnode_if.src
diff options
context:
space:
mode:
authorDavid Greenman <dg@FreeBSD.org>1995-07-07 13:41:28 +0000
committerDavid Greenman <dg@FreeBSD.org>1995-07-07 13:41:28 +0000
commit083c109df6c67628f5bf7f09d54cfc9ab6709af7 (patch)
tree56836e9cf97159ec7d229e9961fc2aafca8bb019 /sys/kern/vnode_if.src
parente9a9607fbb5c920bcdbe6771250362e80d7eafe1 (diff)
downloadsrc-083c109df6c67628f5bf7f09d54cfc9ab6709af7.tar.gz
src-083c109df6c67628f5bf7f09d54cfc9ab6709af7.zip
The generated VCALL always uses the first vp which in the case of /link/
might not be handled by the same FS as the directory (e.g. special device files)...so it must be special-cased. This bug is seen when doing "ln /dev/console /dev/foo" or equivilent and first appeared after I fixed the argument order of VOP_LINK. YUCK! There really needs to be a way of specifying what vp to use in the VCALL; doing this could fix the strategy and bwrite special-cases, too.
Notes
Notes: svn path=/head/; revision=9430
Diffstat (limited to 'sys/kern/vnode_if.src')
-rw-r--r--sys/kern/vnode_if.src16
1 files changed, 10 insertions, 6 deletions
diff --git a/sys/kern/vnode_if.src b/sys/kern/vnode_if.src
index 8a4180ce3440..37ef15ae81f3 100644
--- a/sys/kern/vnode_if.src
+++ b/sys/kern/vnode_if.src
@@ -31,7 +31,7 @@
# SUCH DAMAGE.
#
# @(#)vnode_if.src 8.3 (Berkeley) 2/3/94
-# $Id: vnode_if.src,v 1.3 1994/09/28 16:45:12 dfr Exp $
+# $Id: vnode_if.src,v 1.4 1995/06/28 07:06:41 davidg Exp $
#
vop_lookup {
IN struct vnode *dvp;
@@ -148,11 +148,15 @@ vop_remove {
IN struct componentname *cnp;
};
-vop_link {
- IN struct vnode *vp;
- IN WILLRELE struct vnode *tdvp;
- IN struct componentname *cnp;
-};
+# Gack. The generated VCALL uses the first vp which might
+# not be handled by the same FS as the directory (e.g. special
+# device files)...so it's special-cased.
+#
+#vop_link {
+# IN struct vnode *vp;
+# IN WILLRELE struct vnode *tdvp;
+# IN struct componentname *cnp;
+#};
vop_rename {
IN WILLRELE struct vnode *fdvp;