diff options
author | jeff <jeff@FreeBSD.org> | 2002-07-09 19:43:39 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2002-07-09 19:43:39 +0000 |
commit | 0552450eef6ec51d0167b75c1924f529b6aa3b98 (patch) | |
tree | 3083064fb44c5ce35c6d61dfbbf2e1358f4ea16e /sys/fs/fdescfs | |
parent | a65d1d4862f7b5930f9fe267894561dc16a7fbf5 (diff) | |
download | FreeBSD-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.c | 9 |
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 = |