summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/dev/sdev_vfsops.c
diff options
context:
space:
mode:
authorSebastien Roy <seb@delphix.com>2017-04-27 22:46:23 -0700
committerPrakash Surya <prakash.surya@delphix.com>2017-05-16 02:07:25 -0700
commitade42b557a6e29c3d17a61b1535d99af10e379be (patch)
treed78d4019b4d8ff987fb90f8c24ad8e135624b6ea /usr/src/uts/common/fs/dev/sdev_vfsops.c
parentfe4627ef755b7c263f91a0e6f07cdca5d7083501 (diff)
downloadillumos-joyent-ade42b557a6e29c3d17a61b1535d99af10e379be.tar.gz
8064 need a static DTrace probe in VN_HOLD
Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com> Reviewed by: Prakash Surya <prakash.surya@delphix.com> Reviewed by: Prashanth Sreenivasa <pks@delphix.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Approved by: Robert Mustacchi <rm@joyent.com>
Diffstat (limited to 'usr/src/uts/common/fs/dev/sdev_vfsops.c')
-rw-r--r--usr/src/uts/common/fs/dev/sdev_vfsops.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/usr/src/uts/common/fs/dev/sdev_vfsops.c b/usr/src/uts/common/fs/dev/sdev_vfsops.c
index 00e981ce9c..82f127fe74 100644
--- a/usr/src/uts/common/fs/dev/sdev_vfsops.c
+++ b/usr/src/uts/common/fs/dev/sdev_vfsops.c
@@ -22,6 +22,7 @@
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
* Copyright 2015 Joyent, Inc. All rights reserved.
+ * Copyright (c) 2017 by Delphix. All rights reserved.
*/
/*
@@ -505,7 +506,7 @@ sdev_find_mntinfo(char *mntpt)
mntinfo = sdev_mntinfo;
while (mntinfo) {
if (strcmp(mntpt, mntinfo->sdev_root->sdev_name) == 0) {
- SDEVTOV(mntinfo->sdev_root)->v_count++;
+ VN_HOLD(SDEVTOV(mntinfo->sdev_root));
break;
}
mntinfo = mntinfo->sdev_next;
@@ -517,7 +518,11 @@ sdev_find_mntinfo(char *mntpt)
void
sdev_mntinfo_rele(struct sdev_data *mntinfo)
{
+ vnode_t *vp = SDEVTOV(mntinfo->sdev_root);
+
mutex_enter(&sdev_lock);
- SDEVTOV(mntinfo->sdev_root)->v_count--;
+ mutex_enter(&vp->v_lock);
+ VN_RELE_LOCKED(vp);
+ mutex_exit(&vp->v_lock);
mutex_exit(&sdev_lock);
}