diff options
Diffstat (limited to 'sys/gnu')
| -rw-r--r-- | sys/gnu/fs/ext2fs/ext2_vfsops.c | 7 | ||||
| -rw-r--r-- | sys/gnu/fs/reiserfs/reiserfs_vfsops.c | 4 |
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); |
