summaryrefslogtreecommitdiffstats
path: root/sys/gnu
diff options
context:
space:
mode:
authorssouhlal <ssouhlal@FreeBSD.org>2005-09-03 20:23:41 +0000
committerssouhlal <ssouhlal@FreeBSD.org>2005-09-03 20:23:41 +0000
commit5ea64800e11afe3896814e88b7bf7975800b5000 (patch)
treee7358d5e6b1108dc93a692e869b9e13e75eb2535 /sys/gnu
parent516e4da61f61ff79186706603c0f53e3362bab9f (diff)
downloadFreeBSD-src-5ea64800e11afe3896814e88b7bf7975800b5000.zip
FreeBSD-src-5ea64800e11afe3896814e88b7bf7975800b5000.tar.gz
Unbreak hpfs/ntfs/udf/ext2fs/reiserfs mounting.
Another pointyhat to: ssouhlal
Diffstat (limited to 'sys/gnu')
-rw-r--r--sys/gnu/fs/ext2fs/ext2_vfsops.c7
-rw-r--r--sys/gnu/fs/reiserfs/reiserfs_vfsops.c4
2 files changed, 6 insertions, 5 deletions
diff --git a/sys/gnu/fs/ext2fs/ext2_vfsops.c b/sys/gnu/fs/ext2fs/ext2_vfsops.c
index d125a24..b801b97 100644
--- a/sys/gnu/fs/ext2fs/ext2_vfsops.c
+++ b/sys/gnu/fs/ext2fs/ext2_vfsops.c
@@ -276,9 +276,10 @@ ext2_mount(mp, td)
if ((mp->mnt_flag & MNT_UPDATE) == 0) {
error = ext2_mountfs(devvp, mp, td);
} else {
- if (devvp != ump->um_devvp)
- error = EINVAL; /* needs translation */
- else
+ if (devvp != ump->um_devvp) {
+ vput(devvp);
+ return (EINVAL); /* needs translation */
+ } else
vput(devvp);
}
if (error) {
diff --git a/sys/gnu/fs/reiserfs/reiserfs_vfsops.c b/sys/gnu/fs/reiserfs/reiserfs_vfsops.c
index 0acaf44..db95112 100644
--- a/sys/gnu/fs/reiserfs/reiserfs_vfsops.c
+++ b/sys/gnu/fs/reiserfs/reiserfs_vfsops.c
@@ -142,7 +142,8 @@ reiserfs_mount(struct mount *mp, struct thread *td)
error = reiserfs_mountfs(devvp, mp, td);
} else {
/* TODO Handle MNT_UPDATE */
- error = (EOPNOTSUPP);
+ vput(devvp);
+ return (EOPNOTSUPP);
}
if (error) {
@@ -471,7 +472,6 @@ reiserfs_mountfs(struct vnode *devvp, struct mount *mp, struct thread *td)
if (vcount(devvp) > 1)
return (EBUSY);
- vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td);
error = vinvalbuf(devvp, V_SAVE, td->td_ucred, td, 0, 0);
if (error) {
VOP_UNLOCK(devvp, 0, td);
OpenPOWER on IntegriCloud