diff options
-rw-r--r-- | sys/fs/coda/coda_vfsops.c | 6 | ||||
-rw-r--r-- | sys/fs/coda/coda_vnops.c | 8 |
2 files changed, 7 insertions, 7 deletions
diff --git a/sys/fs/coda/coda_vfsops.c b/sys/fs/coda/coda_vfsops.c index 078350b..4e5397f 100644 --- a/sys/fs/coda/coda_vfsops.c +++ b/sys/fs/coda/coda_vfsops.c @@ -292,7 +292,7 @@ coda_root(vfsp, flags, vpp, td) /* On Mach, this is vref. On FreeBSD, vref + vn_lock. */ vref(*vpp); - vn_lock(*vpp, LK_EXCLUSIVE); + vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY); MARK_INT_SAT(CODA_ROOT_STATS); return(0); } @@ -311,7 +311,7 @@ coda_root(vfsp, flags, vpp, td) *vpp = mi->mi_rootvp; vref(*vpp); - vn_lock(*vpp, LK_EXCLUSIVE); + vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY); MARK_INT_SAT(CODA_ROOT_STATS); goto exit; @@ -327,7 +327,7 @@ coda_root(vfsp, flags, vpp, td) */ *vpp = mi->mi_rootvp; vref(*vpp); - vn_lock(*vpp, LK_EXCLUSIVE); + vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY); MARK_INT_FAIL(CODA_ROOT_STATS); error = 0; diff --git a/sys/fs/coda/coda_vnops.c b/sys/fs/coda/coda_vnops.c index 6cb184d..ed5d75b 100644 --- a/sys/fs/coda/coda_vnops.c +++ b/sys/fs/coda/coda_vnops.c @@ -233,7 +233,7 @@ coda_open(struct vop_open_args *ap) } /* Open the cache file. */ - vn_lock(vp, LK_EXCLUSIVE); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); error = VOP_OPEN(vp, flag, cred, td, NULL); if (error) { VOP_UNLOCK(vp, 0); @@ -272,7 +272,7 @@ coda_close(struct vop_close_args *ap) } if (cp->c_ovp) { - vn_lock(cp->c_ovp, LK_EXCLUSIVE); + vn_lock(cp->c_ovp, LK_EXCLUSIVE | LK_RETRY); VOP_CLOSE(cp->c_ovp, flag, cred, td); /* Do errors matter here? */ vput(cp->c_ovp); } @@ -357,7 +357,7 @@ coda_rdwr(struct vnode *vp, struct uio *uiop, enum uio_rw rw, int ioflag, /* Have UFS handle the call. */ CODADEBUG(CODA_RDWR, myprintf(("indirect rdwr: fid = %s, refcnt = %d\n", coda_f2s(&cp->c_fid), CTOV(cp)->v_usecount)); ) - vn_lock(cfvp, LK_EXCLUSIVE); + vn_lock(cfvp, LK_EXCLUSIVE | LK_RETRY); if (rw == UIO_READ) { error = VOP_READ(cfvp, uiop, ioflag, cred); } else { @@ -1466,7 +1466,7 @@ coda_readdir(struct vop_readdir_args *ap) /* Have UFS handle the call. */ CODADEBUG(CODA_READDIR, myprintf(("indirect readdir: fid = %s, refcnt = %d\n", coda_f2s(&cp->c_fid), vp->v_usecount)); ) - vn_lock(cp->c_ovp, LK_EXCLUSIVE); + vn_lock(cp->c_ovp, LK_EXCLUSIVE | LK_RETRY); error = VOP_READDIR(cp->c_ovp, uiop, cred, eofflag, ncookies, cookies); VOP_UNLOCK(cp->c_ovp, 0); |