diff -ur /usr/src/sys/fs/hpfs/hpfs_vfsops.c src/sys/fs/hpfs/hpfs_vfsops.c --- /usr/src/sys/fs/hpfs/hpfs_vfsops.c Sat Sep 3 09:54:39 2005 +++ src/sys/fs/hpfs/hpfs_vfsops.c Sat Sep 3 10:41:34 2005 @@ -231,7 +231,6 @@ return (EOPNOTSUPP); dprintf(("hpfs_mountfs():\n")); ronly = (mp->mnt_flag & MNT_RDONLY) != 0; - vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td); /* XXX: use VOP_ACCESS to check FS perms */ DROP_GIANT(); g_topology_lock(); diff -ur /usr/src/sys/fs/ntfs/ntfs_vfsops.c src/sys/fs/ntfs/ntfs_vfsops.c --- /usr/src/sys/fs/ntfs/ntfs_vfsops.c Sat Sep 3 09:54:39 2005 +++ src/sys/fs/ntfs/ntfs_vfsops.c Sat Sep 3 10:43:26 2005 @@ -272,7 +272,6 @@ char *cs_ntfs, *cs_local; ronly = (mp->mnt_flag & MNT_RDONLY) != 0; - vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td); DROP_GIANT(); g_topology_lock(); error = g_vfs_open(devvp, &cp, "ntfs", ronly ? 0 : 1); diff -ur /usr/src/sys/fs/udf/udf_vfsops.c src/sys/fs/udf/udf_vfsops.c --- /usr/src/sys/fs/udf/udf_vfsops.c Sat Sep 3 09:54:39 2005 +++ src/sys/fs/udf/udf_vfsops.c Sat Sep 3 10:44:10 2005 @@ -323,7 +323,6 @@ struct g_consumer *cp; struct bufobj *bo; - vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td); DROP_GIANT(); g_topology_lock(); error = g_vfs_open(devvp, &cp, "udf", 0); diff -ur /usr/src/sys/gnu/fs/ext2fs/ext2_vfsops.c src/sys/gnu/fs/ext2fs/ext2_vfsops.c --- /usr/src/sys/gnu/fs/ext2fs/ext2_vfsops.c Sat Sep 3 09:54:44 2005 +++ src/sys/gnu/fs/ext2fs/ext2_vfsops.c Sat Sep 3 18:24:33 2005 @@ -276,9 +276,10 @@ 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 -ur /usr/src/sys/gnu/fs/reiserfs/reiserfs_vfsops.c src/sys/gnu/fs/reiserfs/reiserfs_vfsops.c --- /usr/src/sys/gnu/fs/reiserfs/reiserfs_vfsops.c Sat Sep 3 09:54:44 2005 +++ src/sys/gnu/fs/reiserfs/reiserfs_vfsops.c Sat Sep 3 18:22:08 2005 @@ -142,7 +142,8 @@ error = reiserfs_mountfs(devvp, mp, td); } else { /* TODO Handle MNT_UPDATE */ - error = (EOPNOTSUPP); + vput(devvp); + return (EOPNOTSUPP); } if (error) { @@ -471,7 +472,6 @@ 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);