summaryrefslogtreecommitdiffstats
path: root/sys/fs/fdescfs
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2002-07-09 19:43:39 +0000
committerjeff <jeff@FreeBSD.org>2002-07-09 19:43:39 +0000
commit0552450eef6ec51d0167b75c1924f529b6aa3b98 (patch)
tree3083064fb44c5ce35c6d61dfbbf2e1358f4ea16e /sys/fs/fdescfs
parenta65d1d4862f7b5930f9fe267894561dc16a7fbf5 (diff)
downloadFreeBSD-src-0552450eef6ec51d0167b75c1924f529b6aa3b98.zip
FreeBSD-src-0552450eef6ec51d0167b75c1924f529b6aa3b98.tar.gz
- Change all LK_SHARE locks to LK_EXCLUSIVE. Shared locks aren't quite safe
yet - Use vop_std{lock,unlock,islocked}.
Diffstat (limited to 'sys/fs/fdescfs')
-rw-r--r--sys/fs/fdescfs/fdesc_vnops.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/fs/fdescfs/fdesc_vnops.c b/sys/fs/fdescfs/fdesc_vnops.c
index 62852e8..1cc8db5 100644
--- a/sys/fs/fdescfs/fdesc_vnops.c
+++ b/sys/fs/fdescfs/fdesc_vnops.c
@@ -190,7 +190,7 @@ fdesc_lookup(ap)
if (cnp->cn_namelen == 1 && *pname == '.') {
*vpp = dvp;
VREF(dvp);
- vn_lock(dvp, LK_SHARED | LK_RETRY, td);
+ vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY, td);
return (0);
}
@@ -221,12 +221,12 @@ fdesc_lookup(ap)
if (error)
goto bad;
VTOFDESC(fvp)->fd_fd = fd;
- vn_lock(fvp, LK_SHARED | LK_RETRY, td);
+ vn_lock(fvp, LK_EXCLUSIVE | LK_RETRY, td);
*vpp = fvp;
return (0);
bad:
- vn_lock(dvp, LK_SHARED | LK_RETRY, td);
+ vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY, td);
*vpp = NULL;
return (error);
}
@@ -564,6 +564,9 @@ static struct vnodeopv_entry_desc fdesc_vnodeop_entries[] = {
{ &vop_readdir_desc, (vop_t *) fdesc_readdir },
{ &vop_reclaim_desc, (vop_t *) fdesc_reclaim },
{ &vop_setattr_desc, (vop_t *) fdesc_setattr },
+ { &vop_lock_desc, (vop_t *) vop_stdlock },
+ { &vop_unlock_desc, (vop_t *) vop_stdunlock },
+ { &vop_islocked_desc, (vop_t *) vop_stdislocked },
{ NULL, NULL }
};
static struct vnodeopv_desc fdesc_vnodeop_opv_desc =
OpenPOWER on IntegriCloud