obsd-lock-vnops-20080103
[openafs.git] / src / afs / OBSD / osi_vnodeops.c
index 4715adf..9f36f30 100644 (file)
@@ -107,6 +107,9 @@ RCSID
 
 #include <sys/malloc.h>
 #include <sys/namei.h>
+#ifdef AFS_OBSD36_ENV
+#include <sys/pool.h>
+#endif
 
 #include "afs/afs_cbqueue.h"
 #include "afs/nfsclient.h"
@@ -118,40 +121,40 @@ extern int afs_FlushVS(struct vcache *tvc);
 
 #define M_AFSNODE (M_TEMP-1)   /* XXX */
 
-int afs_nbsd_lookup(struct vop_lookup_args *);
-int afs_nbsd_create(struct vop_create_args *);
-int afs_nbsd_mknod(struct vop_mknod_args *);
-int afs_nbsd_open(struct vop_open_args *);
-int afs_nbsd_close(struct vop_close_args *);
-int afs_nbsd_access(struct vop_access_args *);
-int afs_nbsd_getattr(struct vop_getattr_args *);
-int afs_nbsd_setattr(struct vop_setattr_args *);
-int afs_nbsd_read(struct vop_read_args *);
-int afs_nbsd_write(struct vop_write_args *);
-int afs_nbsd_ioctl(struct vop_ioctl_args *);
-int afs_nbsd_fsync(struct vop_fsync_args *);
-int afs_nbsd_remove(struct vop_remove_args *);
-int afs_nbsd_link(struct vop_link_args *);
-int afs_nbsd_rename(struct vop_rename_args *);
-int afs_nbsd_mkdir(struct vop_mkdir_args *);
-int afs_nbsd_rmdir(struct vop_rmdir_args *);
-int afs_nbsd_symlink(struct vop_symlink_args *);
-int afs_nbsd_readdir(struct vop_readdir_args *);
-int afs_nbsd_readlink(struct vop_readlink_args *);
-extern int ufs_abortop(struct vop_abortop_args *);
-int afs_nbsd_inactive(struct vop_inactive_args *);
-int afs_nbsd_reclaim(struct vop_reclaim_args *);
-int afs_nbsd_lock(struct vop_lock_args *);
-int afs_nbsd_unlock(struct vop_unlock_args *);
-int afs_nbsd_bmap(struct vop_bmap_args *);
-int afs_nbsd_strategy(struct vop_strategy_args *);
-int afs_nbsd_print(struct vop_print_args *);
-int afs_nbsd_islocked(struct vop_islocked_args *);
-int afs_nbsd_pathconf(struct vop_pathconf_args *);
-int afs_nbsd_advlock(struct vop_advlock_args *);
+int afs_nbsd_lookup(void *);
+int afs_nbsd_create(void *);
+int afs_nbsd_mknod(void *);
+int afs_nbsd_open(void *);
+int afs_nbsd_close(void *);
+int afs_nbsd_access(void *);
+int afs_nbsd_getattr(void *);
+int afs_nbsd_setattr(void *);
+int afs_nbsd_read(void *);
+int afs_nbsd_write(void *);
+int afs_nbsd_ioctl(void *);
+int afs_nbsd_select(void *);
+int afs_nbsd_fsync(void *);
+int afs_nbsd_remove(void *);
+int afs_nbsd_link(void *);
+int afs_nbsd_rename(void *);
+int afs_nbsd_mkdir(void *);
+int afs_nbsd_rmdir(void *);
+int afs_nbsd_symlink(void *);
+int afs_nbsd_readdir(void *);
+int afs_nbsd_readlink(void *);
+int afs_nbsd_inactive(void *);
+int afs_nbsd_reclaim(void *);
+int afs_nbsd_lock(void *);
+int afs_nbsd_unlock(void *);
+int afs_nbsd_bmap(void *);
+int afs_nbsd_strategy(void *);
+int afs_nbsd_print(void *);
+int afs_nbsd_islocked(void *);
+int afs_nbsd_pathconf(void *);
+int afs_nbsd_advlock(void *);
 
 #define afs_nbsd_opnotsupp \
-       ((int (*) __P((struct  vop_reallocblks_args *)))eopnotsupp)
+       ((int (*) __P((void *)))eopnotsupp)
 #define afs_nbsd_reallocblks afs_nbsd_opnotsupp
 
 /* Global vfs data structures for AFS. */
@@ -170,9 +173,9 @@ struct vnodeopv_entry_desc afs_vnodeop_entries[] = {
     {&vop_write_desc, afs_nbsd_write},         /* write */
     {&vop_ioctl_desc, afs_nbsd_ioctl},         /* XXX ioctl */
 #ifdef AFS_OBSD35_ENV
-    {&vop_poll_desc, seltrue},                 /* select */
+    {&vop_poll_desc, afs_nbsd_select},         /* select */
 #else
-    {&vop_select_desc, seltrue},               /* select */
+    {&vop_select_desc, afs_nbsd_select},       /* select */
 #endif
     {&vop_fsync_desc, afs_nbsd_fsync},         /* fsync */
     {&vop_remove_desc, afs_nbsd_remove},       /* remove */
@@ -186,8 +189,8 @@ struct vnodeopv_entry_desc afs_vnodeop_entries[] = {
     {&vop_abortop_desc, vop_generic_abortop},  /* abortop */
     {&vop_inactive_desc, afs_nbsd_inactive},   /* inactive */
     {&vop_reclaim_desc, afs_nbsd_reclaim},     /* reclaim */
-    {&vop_lock_desc, afs_nbsd_lock},           /* lock */
-    {&vop_unlock_desc, afs_nbsd_unlock},       /* unlock */
+    {&vop_lock_desc, ((int (*)(void *))vop_generic_lock)},     /* lock */
+    {&vop_unlock_desc, ((int (*)(void *))vop_generic_unlock)}, /* unlock */
     {&vop_bmap_desc, afs_nbsd_bmap},           /* bmap */
     {&vop_strategy_desc, afs_nbsd_strategy},   /* strategy */
     {&vop_print_desc, afs_nbsd_print},         /* print */
@@ -210,22 +213,23 @@ struct vnodeopv_desc afs_vnodeop_opv_desc =
 
 #define DROPNAME() FREE(name, M_TEMP)
 
-int afs_debug;
+#ifdef AFS_OBSD36_ENV
+#define DROPCNP(cnp) pool_put(&namei_pool, (cnp)->cn_pnbuf)
+#else
+#define DROPCNP(cnp) FREE((cnp)->cn_pnbuf, M_NAMEI)
+#endif
 
-#undef vrele
-#define vrele afs_nbsd_rele
-#undef VREF
-#define VREF afs_nbsd_ref
+int afs_debug;
 
 int
-afs_nbsd_lookup(ap)
-     struct vop_lookup_args    /* {
+afs_nbsd_lookup(void *v)
+{
+    struct vop_lookup_args     /* {
                                 * struct vnodeop_desc * a_desc;
                                 * struct vnode *a_dvp;
                                 * struct vnode **a_vpp;
                                 * struct componentname *a_cnp;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
     struct vcache *vcp;
     struct vnode *vp, *dvp;
@@ -299,14 +303,14 @@ afs_nbsd_lookup(ap)
 }
 
 int
-afs_nbsd_create(ap)
-     struct vop_create_args    /* {
+afs_nbsd_create(void *v)
+{
+    struct vop_create_args     /* {
                                 * struct vnode *a_dvp;
                                 * struct vnode **a_vpp;
                                 * struct componentname *a_cnp;
                                 * struct vattr *a_vap;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code = 0;
     struct vcache *vcp;
     struct vnode *dvp = ap->a_dvp;
@@ -336,7 +340,7 @@ afs_nbsd_create(ap)
        *ap->a_vpp = 0;
 
     if ((cnp->cn_flags & SAVESTART) == 0)
-       FREE(cnp->cn_pnbuf, M_NAMEI);
+       DROPCNP(cnp);
     vput(dvp);
     DROPNAME();
     if (afs_debug & AFSDEB_VNLAYER)
@@ -345,28 +349,28 @@ afs_nbsd_create(ap)
 }
 
 int
-afs_nbsd_mknod(ap)
-     struct vop_mknod_args     /* {
+afs_nbsd_mknod(void *v)
+{
+    struct vop_mknod_args      /* {
                                 * struct vnode *a_dvp;
                                 * struct vnode **a_vpp;
                                 * struct componentname *a_cnp;
                                 * struct vattr *a_vap;
-                                * } */ *ap;
-{
-    free(ap->a_cnp->cn_pnbuf, M_NAMEI);
+                                * } */ *ap = v;
+    DROPCNP(ap->a_cnp);
     vput(ap->a_dvp);
     return (ENODEV);
 }
 
 int
-afs_nbsd_open(ap)
-     struct vop_open_args      /* {
+afs_nbsd_open(void *v)
+{
+    struct vop_open_args       /* {
                                 * struct vnode *a_vp;
                                 * int  a_mode;
                                 * struct ucred *a_cred;
                                 * struct proc *a_p;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
     struct vcache *vc = VTOAFS(ap->a_vp);
 
@@ -381,14 +385,14 @@ afs_nbsd_open(ap)
 }
 
 int
-afs_nbsd_close(ap)
-     struct vop_close_args     /* {
+afs_nbsd_close(void *v)
+{
+    struct vop_close_args      /* {
                                 * struct vnode *a_vp;
                                 * int  a_fflag;
                                 * struct ucred *a_cred;
                                 * struct proc *a_p;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
 
     AFS_GLOCK();
@@ -398,14 +402,14 @@ afs_nbsd_close(ap)
 }
 
 int
-afs_nbsd_access(ap)
-     struct vop_access_args    /* {
+afs_nbsd_access(void *v)
+{
+    struct vop_access_args     /* {
                                 * struct vnode *a_vp;
                                 * int  a_mode;
                                 * struct ucred *a_cred;
                                 * struct proc *a_p;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
 
     AFS_GLOCK();
@@ -415,14 +419,14 @@ afs_nbsd_access(ap)
 }
 
 int
-afs_nbsd_getattr(ap)
-     struct vop_getattr_args   /* {
+afs_nbsd_getattr(void *v)
+{
+    struct vop_getattr_args    /* {
                                 * struct vnode *a_vp;
                                 * struct vattr *a_vap;
                                 * struct ucred *a_cred;
                                 * struct proc *a_p;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
 
     AFS_GLOCK();
@@ -432,14 +436,14 @@ afs_nbsd_getattr(ap)
 }
 
 int
-afs_nbsd_setattr(ap)
-     struct vop_setattr_args   /* {
+afs_nbsd_setattr(void *v)
+{
+    struct vop_setattr_args    /* {
                                 * struct vnode *a_vp;
                                 * struct vattr *a_vap;
                                 * struct ucred *a_cred;
                                 * struct proc *a_p;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
 
     AFS_GLOCK();
@@ -449,14 +453,14 @@ afs_nbsd_setattr(ap)
 }
 
 int
-afs_nbsd_read(ap)
-     struct vop_read_args      /* {
+afs_nbsd_read(void *v)
+{
+    struct vop_read_args       /* {
                                 * struct vnode *a_vp;
                                 * struct uio *a_uio;
                                 * int a_ioflag;
                                 * struct ucred *a_cred;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
 
     AFS_GLOCK();
@@ -468,14 +472,14 @@ afs_nbsd_read(ap)
 }
 
 int
-afs_nbsd_write(ap)
-     struct vop_write_args     /* {
+afs_nbsd_write(void *v)
+{
+    struct vop_write_args      /* {
                                 * struct vnode *a_vp;
                                 * struct uio *a_uio;
                                 * int a_ioflag;
                                 * struct ucred *a_cred;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
 
 #ifdef UVM
@@ -491,16 +495,16 @@ afs_nbsd_write(ap)
 }
 
 int
-afs_nbsd_ioctl(ap)
-     struct vop_ioctl_args     /* {
+afs_nbsd_ioctl(void *v)
+{
+    struct vop_ioctl_args      /* {
                                 * struct vnode *a_vp;
                                 * int  a_command;
                                 * caddr_t  a_data;
                                 * int  a_fflag;
                                 * struct ucred *a_cred;
                                 * struct proc *a_p;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
 
     /* in case we ever get in here... */
@@ -520,14 +524,20 @@ afs_nbsd_ioctl(ap)
 }
 
 int
-afs_nbsd_fsync(ap)
-     struct vop_fsync_args     /* {
+afs_nbsd_select(void *v)
+{
+    return 1;
+}
+
+int
+afs_nbsd_fsync(void *v)
+{
+    struct vop_fsync_args      /* {
                                 * struct vnode *a_vp;
                                 * struct ucred *a_cred;
                                 * int a_waitfor;
                                 * struct proc *a_p;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int wait = ap->a_waitfor == MNT_WAIT;
     struct vnode *vp = ap->a_vp;
     int code;
@@ -540,13 +550,13 @@ afs_nbsd_fsync(ap)
 }
 
 int
-afs_nbsd_remove(ap)
-     struct vop_remove_args    /* {
+afs_nbsd_remove(void *v)
+{
+    struct vop_remove_args     /* {
                                 * struct vnode *a_dvp;
                                 * struct vnode *a_vp;
                                 * struct componentname *a_cnp;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
     struct vnode *vp = ap->a_vp;
     struct vnode *dvp = ap->a_dvp;
@@ -560,19 +570,19 @@ afs_nbsd_remove(ap)
     else
        vput(vp);
     vput(dvp);
-    FREE(cnp->cn_pnbuf, M_NAMEI);
+    DROPCNP(cnp);
     DROPNAME();
     return code;
 }
 
 int
-afs_nbsd_link(ap)
-     struct vop_link_args      /* {
+afs_nbsd_link(void *v)
+{
+    struct vop_link_args       /* {
                                 * struct vnode *a_vp;
                                 * struct vnode *a_tdvp;
                                 * struct componentname *a_cnp;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
     struct vnode *dvp = ap->a_dvp;
     struct vnode *vp = ap->a_vp;
@@ -596,7 +606,7 @@ afs_nbsd_link(ap)
     AFS_GLOCK();
     code = afs_link(VTOAFS(vp), VTOAFS(dvp), name, cnp->cn_cred);
     AFS_GUNLOCK();
-    FREE(cnp->cn_pnbuf, M_NAMEI);
+    DROPCNP(cnp);
     if (dvp != vp)
        VOP_UNLOCK(vp, 0, curproc);
 
@@ -607,16 +617,16 @@ afs_nbsd_link(ap)
 }
 
 int
-afs_nbsd_rename(ap)
-     struct vop_rename_args    /* {
+afs_nbsd_rename(void *v)
+{
+    struct vop_rename_args     /* {
                                 * struct vnode *a_fdvp;
                                 * struct vnode *a_fvp;
                                 * struct componentname *a_fcnp;
                                 * struct vnode *a_tdvp;
                                 * struct vnode *a_tvp;
                                 * struct componentname *a_tcnp;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code = 0;
     struct componentname *fcnp = ap->a_fcnp;
     char *fname;
@@ -708,14 +718,14 @@ afs_nbsd_rename(ap)
 }
 
 int
-afs_nbsd_mkdir(ap)
-     struct vop_mkdir_args     /* {
+afs_nbsd_mkdir(void *v)
+{
+    struct vop_mkdir_args      /* {
                                 * struct vnode *a_dvp;
                                 * struct vnode **a_vpp;
                                 * struct componentname *a_cnp;
                                 * struct vattr *a_vap;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     struct vnode *dvp = ap->a_dvp;
     struct vattr *vap = ap->a_vap;
     int code;
@@ -740,20 +750,20 @@ afs_nbsd_mkdir(ap)
        vn_lock(AFSTOV(vcp), LK_EXCLUSIVE | LK_RETRY, curproc);
     } else
        *ap->a_vpp = 0;
+    DROPCNP(cnp);
     DROPNAME();
-    FREE(cnp->cn_pnbuf, M_NAMEI);
     vput(dvp);
     return code;
 }
 
 int
-afs_nbsd_rmdir(ap)
-     struct vop_rmdir_args     /* {
+afs_nbsd_rmdir(void *v)
+{
+    struct vop_rmdir_args      /* {
                                 * struct vnode *a_dvp;
                                 * struct vnode *a_vp;
                                 * struct componentname *a_cnp;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
     struct vnode *vp = ap->a_vp;
     struct vnode *dvp = ap->a_dvp;
@@ -762,7 +772,7 @@ afs_nbsd_rmdir(ap)
     if (dvp == vp) {
        vrele(dvp);
        vput(vp);
-       FREE(cnp->cn_pnbuf, M_NAMEI);
+       DROPCNP(cnp);
        DROPNAME();
        return (EINVAL);
     }
@@ -777,15 +787,15 @@ afs_nbsd_rmdir(ap)
 }
 
 int
-afs_nbsd_symlink(ap)
-     struct vop_symlink_args   /* {
+afs_nbsd_symlink(void *v)
+{
+    struct vop_symlink_args    /* {
                                 * struct vnode *a_dvp;
                                 * struct vnode **a_vpp;
                                 * struct componentname *a_cnp;
                                 * struct vattr *a_vap;
                                 * char *a_target;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     struct vnode *dvp = ap->a_dvp;
     int code;
     /* NFS ignores a_vpp; so do we. */
@@ -795,23 +805,23 @@ afs_nbsd_symlink(ap)
     code =
        afs_symlink(VTOAFS(dvp), name, ap->a_vap, ap->a_target, cnp->cn_cred);
     AFS_GUNLOCK();
+    DROPCNP(cnp);
     DROPNAME();
-    FREE(cnp->cn_pnbuf, M_NAMEI);
     vput(dvp);
     return code;
 }
 
 int
-afs_nbsd_readdir(ap)
-     struct vop_readdir_args   /* {
+afs_nbsd_readdir(void *v)
+{
+    struct vop_readdir_args    /* {
                                 * struct vnode *a_vp;
                                 * struct uio *a_uio;
                                 * struct ucred *a_cred;
                                 * int *a_eofflag;
                                 * int *a_ncookies;
                                 * u_long **a_cookies;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
 
     AFS_GLOCK();
@@ -830,13 +840,13 @@ afs_nbsd_readdir(ap)
 }
 
 int
-afs_nbsd_readlink(ap)
-     struct vop_readlink_args  /* {
+afs_nbsd_readlink(void *v)
+{
+    struct vop_readlink_args   /* {
                                 * struct vnode *a_vp;
                                 * struct uio *a_uio;
                                 * struct ucred *a_cred;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
 
     AFS_GLOCK();
@@ -848,11 +858,11 @@ afs_nbsd_readlink(ap)
 extern int prtactive;
 
 int
-afs_nbsd_inactive(ap)
-     struct vop_inactive_args  /* {
-                                * struct vnode *a_vp;
-                                * } */ *ap;
+afs_nbsd_inactive(void *v)
 {
+    struct vop_inactive_args   /* {
+                                * struct vnode *a_vp;
+                                * } */ *ap = v;
     struct vnode *vp = ap->a_vp;
     struct vcache *vc = VTOAFS(vp);
     int haveGlock = ISAFS_GLOCK();
@@ -873,17 +883,25 @@ afs_nbsd_inactive(ap)
 }
 
 int
-afs_nbsd_reclaim(ap)
-     struct vop_reclaim_args   /* {
-                                * struct vnode *a_vp;
-                                * } */ *ap;
+afs_nbsd_reclaim(void *v)
 {
+    struct vop_reclaim_args    /* {
+                                * struct vnode *a_vp;
+                                * } */ *ap = v;
     int code, slept;
     struct vnode *vp = ap->a_vp;
     struct vcache *avc = VTOAFS(vp);
     int haveGlock = ISAFS_GLOCK();
     int haveVlock = CheckLock(&afs_xvcache);
 
+#if 0
+    printf("reclaim usecount %d\n", vp->v_usecount);
+    /* OK, there are no internal vrefCounts, so there shouldn't
+     * be any more refs here. */
+    vp->v_data = NULL;         /* remove from vnode */
+    avc->v = NULL;             /* also drop the ptr to vnode */
+    return 0;
+#else
     if (!haveGlock)
        AFS_GLOCK();
     if (!haveVlock)
@@ -899,52 +917,19 @@ afs_nbsd_reclaim(ap)
     if (!haveGlock)
        AFS_GUNLOCK();
     return code;
+#endif
 }
 
 int
-afs_nbsd_lock(ap)
-     struct vop_lock_args      /* {
-                                * struct vnode *a_vp;
-                                * int a_flags;
-                                * sturct proc *a_p;
-                                * } */ *ap;
-{
-    struct vnode *vp = ap->a_vp;
-    struct vcache *vc = VTOAFS(vp);
-
-    if (!vc)
-       panic("afs_nbsd_lock: null vcache");
-    return lockmgr(&vc->rwlock, ap->a_flags | LK_CANRECURSE, &vp->v_interlock,
-                  ap->a_p);
-}
-
-int
-afs_nbsd_unlock(ap)
-     struct vop_unlock_args    /* {
-                                * struct vnode *a_vp;
-                                * int a_flags;
-                                * struct proc *a_p;
-                                * } */ *ap;
+afs_nbsd_bmap(void *v)
 {
-    struct vnode *vp = ap->a_vp;
-    struct vcache *vc = VTOAFS(vp);
-
-    if (!vc)
-       panic("afs_nbsd_unlock: null vcache");
-    return lockmgr(&vc->rwlock, ap->a_flags | LK_RELEASE, &vp->v_interlock,
-                  ap->a_p);
-}
-
-int
-afs_nbsd_bmap(ap)
-     struct vop_bmap_args      /* {
+    struct vop_bmap_args       /* {
                                 * struct vnode *a_vp;
                                 * daddr_t  a_bn;
                                 * struct vnode **a_vpp;
                                 * daddr_t *a_bnp;
                                 * int *a_runp;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     struct vcache *vcp = VTOAFS(ap->a_vp);
 
     AFS_STATCNT(afs_bmap);
@@ -956,11 +941,11 @@ afs_nbsd_bmap(ap)
 }
 
 int
-afs_nbsd_strategy(ap)
-     struct vop_strategy_args  /* {
-                                * struct buf *a_bp;
-                                * } */ *ap;
+afs_nbsd_strategy(void *v)
 {
+    struct vop_strategy_args   /* {
+                                * struct buf *a_bp;
+                                * } */ *ap = v;
     struct buf *abp = ap->a_bp;
     struct uio tuio;
     struct iovec tiovec[1];
@@ -994,11 +979,11 @@ afs_nbsd_strategy(ap)
 }
 
 int
-afs_nbsd_print(ap)
-     struct vop_print_args     /* {
-                                * struct vnode *a_vp;
-                                * } */ *ap;
+afs_nbsd_print(void *v)
 {
+    struct vop_print_args      /* {
+                                * struct vnode *a_vp;
+                                * } */ *ap = v;
     struct vnode *vp = ap->a_vp;
     struct vcache *vc = VTOAFS(ap->a_vp);
 
@@ -1011,11 +996,11 @@ afs_nbsd_print(ap)
 }
 
 int
-afs_nbsd_islocked(ap)
-     struct vop_islocked_args  /* {
-                                * struct vnode *a_vp;
-                                * } */ *ap;
+afs_nbsd_islocked(void *v)
 {
+    struct vop_islocked_args   /* {
+                                * struct vnode *a_vp;
+                                * } */ *ap = v;
     return lockstatus(&VTOAFS(ap->a_vp)->rwlock);
 }
 
@@ -1023,13 +1008,13 @@ afs_nbsd_islocked(ap)
  * Return POSIX pathconf information applicable to ufs filesystems.
  */
 int
-afs_nbsd_pathconf(ap)
-     struct vop_pathconf_args  /* {
+afs_nbsd_pathconf(void *v)
+{
+    struct vop_pathconf_args   /* {
                                 * struct vnode *a_vp;
                                 * int a_name;
                                 * int *a_retval;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     AFS_STATCNT(afs_cntl);
     switch (ap->a_name) {
     case _PC_LINK_MAX:
@@ -1064,15 +1049,15 @@ extern int
  * Advisory record locking support (fcntl() POSIX style)
  */
 int
-afs_nbsd_advlock(ap)
-     struct vop_advlock_args   /* {
+afs_nbsd_advlock(void *v)
+{
+    struct vop_advlock_args    /* {
                                 * struct vnode *a_vp;
                                 * caddr_t  a_id;
                                 * int  a_op;
                                 * struct flock *a_fl;
                                 * int  a_flags;
-                                * } */ *ap;
-{
+                                * } */ *ap = v;
     int code;
 
     AFS_GLOCK();