diff options
author | David Greenman <dg@FreeBSD.org> | 1995-07-07 13:41:28 +0000 |
---|---|---|
committer | David Greenman <dg@FreeBSD.org> | 1995-07-07 13:41:28 +0000 |
commit | 083c109df6c67628f5bf7f09d54cfc9ab6709af7 (patch) | |
tree | 56836e9cf97159ec7d229e9961fc2aafca8bb019 /sys/kern/vnode_if.src | |
parent | e9a9607fbb5c920bcdbe6771250362e80d7eafe1 (diff) | |
download | src-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.src | 16 |
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; |