Lines Matching refs:dv

56 devnet_validate(struct sdev_node *dv)
61 ASSERT(dv->sdev_state == SDEV_READY);
63 if (dls_mgmt_get_linkid(dv->sdev_name, &linkid) != 0)
65 if (SDEV_IS_GLOBAL(dv))
117 struct sdev_node *dv = NULL;
150 if ((dv = sdev_cache_lookup(ddv, nm)) != NULL) {
151 ASSERT(dv->sdev_state == SDEV_READY);
152 if (!(dv->sdev_flags & SDEV_ATTR_INVALID))
166 error = sdev_mknode(ddv, nm, &dv, &vattr, NULL, NULL, cred, SDEV_READY);
172 ASSERT(dv != NULL);
174 rw_enter(&dv->sdev_contents, RW_WRITER);
175 if (dv->sdev_flags & SDEV_ATTR_INVALID) {
181 SDEVTOV(dv)->v_rdev = vattr.va_rdev;
182 ASSERT(dv->sdev_attr != NULL);
183 dv->sdev_attr->va_rdev = vattr.va_rdev;
184 dv->sdev_flags &= ~SDEV_ATTR_INVALID;
186 ASSERT(dv->sdev_private == NULL);
187 dv->sdev_private = ddh;
188 rw_exit(&dv->sdev_contents);
191 ASSERT(SDEV_HELD(dv));
193 return (sdev_to_vp(dv, vpp));
198 if (dv != NULL)
199 SDEV_RELE(dv);
210 struct sdev_node *dv;
219 if ((dv = sdev_cache_lookup(ddv, (char *)link)) != NULL)
228 if (sdev_mknode(ddv, (char *)link, &dv, &vattr, NULL, NULL, kcred,
238 rw_enter(&dv->sdev_contents, RW_WRITER);
239 dv->sdev_flags |= SDEV_ATTR_INVALID;
240 rw_exit(&dv->sdev_contents);
243 SDEV_SIMPLE_RELE(dv);
250 sdev_node_t *dv, *next;
259 for (dv = SDEV_FIRST_ENTRY(ddv); dv; dv = next) {
260 next = SDEV_NEXT_ENTRY(ddv, dv);
263 if (dv->sdev_state != SDEV_READY)
266 switch (devnet_validate(dv)) {
273 "node: %s(%p)\n", dv->sdev_name, (void *)dv));
277 if (SDEVTOV(dv)->v_count > 0)
279 SDEV_HOLD(dv);
281 (void) sdev_cache_update(ddv, &dv, dv->sdev_name,
283 SDEV_RELE(dv);