version 1.346, 2008/03/21 21:55:00 |
version 1.347, 2008/03/25 22:13:32 |
Line 387 mount_domount(struct lwp *l, struct vnod |
|
Line 387 mount_domount(struct lwp *l, struct vnod |
|
checkdirs(vp); |
checkdirs(vp); |
if ((mp->mnt_flag & (MNT_RDONLY | MNT_ASYNC)) == 0) |
if ((mp->mnt_flag & (MNT_RDONLY | MNT_ASYNC)) == 0) |
error = vfs_allocate_syncvnode(mp); |
error = vfs_allocate_syncvnode(mp); |
vfs_unbusy(mp, false); |
/* Hold an additional reference to the mount across VFS_START(). */ |
|
vfs_unbusy(mp, true); |
(void) VFS_STATVFS(mp, &mp->mnt_stat); |
(void) VFS_STATVFS(mp, &mp->mnt_stat); |
error = VFS_START(mp, 0); |
error = VFS_START(mp, 0); |
if (error) { |
if (error) { |
vrele(vp); |
vrele(vp); |
vfs_destroy(mp); |
vfs_destroy(mp); |
} |
} |
|
/* Drop reference held for VFS_START(). */ |
|
vfs_destroy(mp); |
*vpp = NULL; |
*vpp = NULL; |
return error; |
return error; |
} |
} |