diff options
| author | Suleiman Souhlal <ssouhlal@FreeBSD.org> | 2005-09-02 15:27:23 +0000 |
|---|---|---|
| committer | Suleiman Souhlal <ssouhlal@FreeBSD.org> | 2005-09-02 15:27:23 +0000 |
| commit | 75d7ba93af7d630911ccc1184ad0a93feae22ef1 (patch) | |
| tree | 6d3fd63626ff1d58add99ac395ebda844196e694 /sys/gnu | |
| parent | 02dfd2b299ef9e368a9acad907dc3a5d7ccf32b1 (diff) | |
Notes
Diffstat (limited to 'sys/gnu')
| -rw-r--r-- | sys/gnu/fs/ext2fs/ext2_vfsops.c | 8 | ||||
| -rw-r--r-- | sys/gnu/fs/reiserfs/reiserfs_vfsops.c | 6 |
2 files changed, 5 insertions, 9 deletions
diff --git a/sys/gnu/fs/ext2fs/ext2_vfsops.c b/sys/gnu/fs/ext2fs/ext2_vfsops.c index de198ce70669..d125a2496f46 100644 --- a/sys/gnu/fs/ext2fs/ext2_vfsops.c +++ b/sys/gnu/fs/ext2fs/ext2_vfsops.c @@ -248,14 +248,14 @@ ext2_mount(mp, td) */ if (fspec == NULL) return (EINVAL); - NDINIT(ndp, LOOKUP, FOLLOW, UIO_SYSSPACE, fspec, td); + NDINIT(ndp, LOOKUP, FOLLOW | LOCKLEAF, UIO_SYSSPACE, fspec, td); if ((error = namei(ndp)) != 0) return (error); NDFREE(ndp, NDF_ONLY_PNBUF); devvp = ndp->ni_vp; if (!vn_isdisk(devvp, &error)) { - vrele(devvp); + vput(devvp); return (error); } @@ -267,12 +267,10 @@ ext2_mount(mp, td) accessmode = VREAD; if ((mp->mnt_flag & MNT_RDONLY) == 0) accessmode |= VWRITE; - vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td); if ((error = VOP_ACCESS(devvp, accessmode, td->td_ucred, td)) != 0) { vput(devvp); return (error); } - VOP_UNLOCK(devvp, 0, td); } if ((mp->mnt_flag & MNT_UPDATE) == 0) { @@ -281,7 +279,7 @@ ext2_mount(mp, td) if (devvp != ump->um_devvp) error = EINVAL; /* needs translation */ else - vrele(devvp); + vput(devvp); } if (error) { vrele(devvp); diff --git a/sys/gnu/fs/reiserfs/reiserfs_vfsops.c b/sys/gnu/fs/reiserfs/reiserfs_vfsops.c index 4bb425ac85ae..0acaf4473b45 100644 --- a/sys/gnu/fs/reiserfs/reiserfs_vfsops.c +++ b/sys/gnu/fs/reiserfs/reiserfs_vfsops.c @@ -114,14 +114,14 @@ reiserfs_mount(struct mount *mp, struct thread *td) if (fspec == NULL) return (EINVAL); - NDINIT(ndp, LOOKUP, FOLLOW, UIO_SYSSPACE, fspec, td); + NDINIT(ndp, LOOKUP, FOLLOW | LOCKLEAF, UIO_SYSSPACE, fspec, td); if ((error = namei(ndp)) != 0) return (error); NDFREE(ndp, NDF_ONLY_PNBUF); devvp = ndp->ni_vp; if (!vn_isdisk(devvp, &error)) { - vrele(devvp); + vput(devvp); return (error); } @@ -131,13 +131,11 @@ reiserfs_mount(struct mount *mp, struct thread *td) accessmode = VREAD; if ((mp->mnt_flag & MNT_RDONLY) == 0) accessmode |= VWRITE; - vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td); if ((error = VOP_ACCESS(devvp, accessmode, td->td_ucred, td)) != 0) { vput(devvp); return (error); } - VOP_UNLOCK(devvp, 0, td); } if ((mp->mnt_flag & MNT_UPDATE) == 0) { |
