aboutsummaryrefslogtreecommitdiff
path: root/sys/gnu
diff options
context:
space:
mode:
authorSuleiman Souhlal <ssouhlal@FreeBSD.org>2005-09-03 20:23:41 +0000
committerSuleiman Souhlal <ssouhlal@FreeBSD.org>2005-09-03 20:23:41 +0000
commit68da388325a47f2988d278c83dcd6c0ead3c4ae6 (patch)
treee7358d5e6b1108dc93a692e869b9e13e75eb2535 /sys/gnu
parent43be3aac7aa4d5989e75f763ec807f5c624478c9 (diff)
Notes
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 d125a2496f46..b801b974c759 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 0acaf4473b45..db9511260ee0 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);