summaryrefslogtreecommitdiffstats
path: root/sys/nfs/nfs_lock.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/nfs/nfs_lock.c')
-rw-r--r--sys/nfs/nfs_lock.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/nfs/nfs_lock.c b/sys/nfs/nfs_lock.c
index 89ad654..4c220e2 100644
--- a/sys/nfs/nfs_lock.c
+++ b/sys/nfs/nfs_lock.c
@@ -62,6 +62,9 @@ __FBSDID("$FreeBSD$");
extern void (*nlminfo_release_p)(struct proc *p);
+vop_advlock_t *nfs_advlock_p = nfs_dolock;
+vop_reclaim_t *nfs_reclaim_p = NULL;
+
MALLOC_DEFINE(M_NFSLOCK, "nfsclient_lock", "NFS lock request");
MALLOC_DEFINE(M_NLMINFO, "nfsclient_nlminfo", "NFS lock process structure");
@@ -236,20 +239,19 @@ nfs_dolock(struct vop_advlock_args *ap)
int error;
struct flock *fl;
struct proc *p;
+ struct nfsmount *nmp;
td = curthread;
p = td->td_proc;
vp = ap->a_vp;
fl = ap->a_fl;
+ nmp = VFSTONFS(vp->v_mount);
ASSERT_VOP_LOCKED(vp, "nfs_dolock");
- bcopy(VFSTONFS(vp->v_mount)->nm_nam, &msg.lm_addr,
- min(sizeof msg.lm_addr, VFSTONFS(vp->v_mount)->nm_nam->sa_len));
- msg.lm_fh_len = NFS_ISV3(vp) ? VTONFS(vp)->n_fhsize : NFSX_V2FH;
- bcopy(VTONFS(vp)->n_fhp, msg.lm_fh, msg.lm_fh_len);
- msg.lm_nfsv3 = NFS_ISV3(vp);
+ nmp->nm_getinfo(vp, msg.lm_fh, &msg.lm_fh_len, &msg.lm_addr,
+ &msg.lm_nfsv3, NULL);
VOP_UNLOCK(vp, 0);
/*
OpenPOWER on IntegriCloud