diff options
Diffstat (limited to 'usr/src/uts/common/fs/specfs/specsubr.c')
-rw-r--r-- | usr/src/uts/common/fs/specfs/specsubr.c | 10 |
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); |