summaryrefslogtreecommitdiffstats
path: root/sys/cddl/compat
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2012-11-04 14:27:31 +0000
committeravg <avg@FreeBSD.org>2012-11-04 14:27:31 +0000
commit7c58663ad922f66ffc849657c1d88027ec86b23d (patch)
treee920e50a86be4f39917cb7a772791ee38e2754b5 /sys/cddl/compat
parent8e19af80d1e20b3ca15c5fff26300421a7457c8b (diff)
downloadFreeBSD-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
Diffstat (limited to 'sys/cddl/compat')
-rw-r--r--sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c3
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);
OpenPOWER on IntegriCloud