[OpenAFS-port-freebsd] Kernel panic on fs mkmount

David E. Cross crossd@cs.rpi.edu
16 May 2003 19:42:07 -0400


I'm sorry, you're right  (as I said, its been awhile).  My hack was to 
vref(dvp), and then set vpp to dvp (not the other way around).

I'd like to see a modification to VNOP/afs_vnop_symlink.c
(afs_symlink()) to address this, as it would be the "cleanest" overall
instead of calling lookups needlessly, this could be done around line
223, removing (conditionally?) the PutVCache().  And modifying the
function to pass back the vpp correctly.


On Fri, 2003-05-16 at 18:40, Chaskiel M Grundman wrote:
> --On Friday, May 16, 2003 18:35:42 -0400 "David E. Cross"
> <crossd@cs.rpi.edu> wrote:
> 
> > The current implementation _does_ return the vcache of the object
> > that was just created, that is the vp.
> That's not how I read this:
> 
> int
> afs_vop_symlink(ap)
>         struct vop_symlink_args /* {
>                 struct vnode *a_dvp;
>                 struct vnode **a_vpp;
>                 struct componentname *a_cnp;
>                 struct vattr *a_vap;
>                 char *a_target;
>         } */ *ap;
> [...]
> 
>     /* NFS ignores a_vpp; so do we. */
> [...]
>     error = afs_symlink(VTOAFS(dvp), name, ap->a_vap, ap->a_target,
>                         cnp->cn_cred);
-- 
David E. Cross