summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/specfs/specsubr.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/fs/specfs/specsubr.c')
-rw-r--r--usr/src/uts/common/fs/specfs/specsubr.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/usr/src/uts/common/fs/specfs/specsubr.c b/usr/src/uts/common/fs/specfs/specsubr.c
index b7158425b7..9ae689c696 100644
--- a/usr/src/uts/common/fs/specfs/specsubr.c
+++ b/usr/src/uts/common/fs/specfs/specsubr.c
@@ -758,12 +758,12 @@ snode_constructor(void *buf, void *cdrarg, int kmflags)
struct snode *sp = buf;
struct vnode *vp;
- vp = vn_alloc(KM_SLEEP);
-
- sp->s_vnode = vp;
-
+ vp = sp->s_vnode = vn_alloc(kmflags);
+ if (vp == NULL) {
+ return (-1);
+ }
vn_setops(vp, spec_getvnodeops());
- vp->v_data = (caddr_t)sp;
+ vp->v_data = sp;
mutex_init(&sp->s_lock, NULL, MUTEX_DEFAULT, NULL);
cv_init(&sp->s_cv, NULL, CV_DEFAULT, NULL);