diff options
author | avg <avg@FreeBSD.org> | 2012-11-04 14:27:31 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2012-11-04 14:27:31 +0000 |
commit | 7c58663ad922f66ffc849657c1d88027ec86b23d (patch) | |
tree | e920e50a86be4f39917cb7a772791ee38e2754b5 | |
parent | 8e19af80d1e20b3ca15c5fff26300421a7457c8b (diff) | |
download | FreeBSD-src-7c58663ad922f66ffc849657c1d88027ec86b23d.zip FreeBSD-src-7c58663ad922f66ffc849657c1d88027ec86b23d.tar.gz |
opensolaris compat: clear VI_MOUNT before returning if mount_snapshot fails
To do: investigate if it would be possible to use normal vfs_domount here.
Reviewed by: kib
MFC after: 19 days
-rw-r--r-- | sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c b/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c index a266eca..a2532f8 100644 --- a/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c +++ b/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c @@ -191,6 +191,9 @@ mount_snapshot(kthread_t *td, vnode_t **vpp, const char *fstype, char *fspath, td->td_ucred = cr; if (error != 0) { + VI_LOCK(vp); + vp->v_iflag &= ~VI_MOUNT; + VI_UNLOCK(vp); vrele(vp); vfs_unbusy(mp); vfs_mount_destroy(mp); |