Lines Matching refs:pdk
230 struct disk *pdk = sc->sc_parent; in dkwedge_attach() local
238 mutex_enter(&pdk->dk_openlock); in dkwedge_attach()
246 mutex_exit(&pdk->dk_openlock); in dkwedge_attach()
249 mutex_enter(&pdk->dk_openlock); in dkwedge_attach()
250 dk_set_geometry(sc, pdk); in dkwedge_attach()
251 mutex_exit(&pdk->dk_openlock); in dkwedge_attach()
391 dk_set_geometry(struct dkwedge_softc *sc, struct disk *pdk) in dk_set_geometry() argument
396 KASSERT(mutex_owned(&pdk->dk_openlock)); in dk_set_geometry()
401 dg->dg_secsize = DEV_BSIZE << pdk->dk_blkshift; in dk_set_geometry()
424 struct disk *pdk; in dkwedge_add() local
431 pdk = disk_find(dkw->dkw_parent); in dkwedge_add()
432 if (pdk == NULL) in dkwedge_add()
435 error = dkwedge_compute_pdev(pdk->dk_name, &pdev, VBLK); in dkwedge_add()
448 mutex_enter(&pdk->dk_openlock); in dkwedge_add()
449 LIST_FOREACH(lsc, &pdk->dk_wedges, sc_plink) { in dkwedge_add()
464 dk_set_geometry(sc, pdk); in dkwedge_add()
468 mutex_exit(&pdk->dk_openlock); in dkwedge_add()
475 sc->sc_parent = pdk; in dkwedge_add()
497 mutex_enter(&pdk->dk_openlock); in dkwedge_add()
498 if (pdk->dk_openmask & ~(1 << RAW_PART)) in dkwedge_add()
502 LIST_FOREACH(lsc, &pdk->dk_wedges, sc_plink) { in dkwedge_add()
528 pdk->dk_nwedges++; in dkwedge_add()
529 LIST_INSERT_HEAD(&pdk->dk_wedges, sc, sc_plink); in dkwedge_add()
532 mutex_exit(&pdk->dk_openlock); in dkwedge_add()
586 mutex_enter(&pdk->dk_openlock); in dkwedge_add()
587 pdk->dk_nwedges--; in dkwedge_add()
589 mutex_exit(&pdk->dk_openlock); in dkwedge_add()
615 mutex_enter(&pdk->dk_openlock); in dkwedge_add()
616 pdk->dk_nwedges--; in dkwedge_add()
618 mutex_exit(&pdk->dk_openlock); in dkwedge_add()
633 device_xname(sc->sc_dev), pdk->dk_name, in dkwedge_add()
798 dkwedge_delall(struct disk *pdk) in dkwedge_delall() argument
801 dkwedge_delall1(pdk, /*idleonly*/false); in dkwedge_delall()
811 dkwedge_delidle(struct disk *pdk) in dkwedge_delidle() argument
814 dkwedge_delall1(pdk, /*idleonly*/true); in dkwedge_delidle()
818 dkwedge_delall1(struct disk *pdk, bool idleonly) in dkwedge_delall1() argument
828 mutex_enter(&pdk->dk_rawlock); /* for sc->sc_dk.dk_openmask */ in dkwedge_delall1()
829 mutex_enter(&pdk->dk_openlock); in dkwedge_delall1()
830 LIST_FOREACH(sc, &pdk->dk_wedges, sc_plink) { in dkwedge_delall1()
845 KASSERT(idleonly || pdk->dk_nwedges == 0); in dkwedge_delall1()
846 mutex_exit(&pdk->dk_openlock); in dkwedge_delall1()
847 mutex_exit(&pdk->dk_rawlock); in dkwedge_delall1()
850 mutex_exit(&pdk->dk_openlock); in dkwedge_delall1()
851 mutex_exit(&pdk->dk_rawlock); in dkwedge_delall1()
862 dkwedge_list(struct disk *pdk, struct dkwedge_list *dkwl, struct lwp *l) in dkwedge_list() argument
883 mutex_enter(&pdk->dk_openlock); in dkwedge_list()
884 LIST_FOREACH(sc, &pdk->dk_wedges, sc_plink) { in dkwedge_list()
907 mutex_exit(&pdk->dk_openlock); in dkwedge_list()
909 mutex_enter(&pdk->dk_openlock); in dkwedge_list()
916 dkwl->dkwl_nwedges = pdk->dk_nwedges; in dkwedge_list()
917 mutex_exit(&pdk->dk_openlock); in dkwedge_list()
1086 dkwedge_discover(struct disk *pdk) in dkwedge_discover() argument
1105 error = dkwedge_compute_pdev(pdk->dk_name, &pdev, VCHR); in dkwedge_discover()
1108 pdk->dk_name, error); in dkwedge_discover()
1115 pdk->dk_name, error); in dkwedge_discover()
1122 pdk->dk_name, error); in dkwedge_discover()
1131 pdk->dk_name, error); in dkwedge_discover()
1140 dkwedge_delidle(pdk); in dkwedge_discover()
1148 error = (*ddm->ddm_discover)(pdk, vp); in dkwedge_discover()
1158 pdk->dk_name, error); in dkwedge_discover()
1173 dkwedge_read(struct disk *pdk, struct vnode *vp, daddr_t blkno, in dkwedge_read() argument
1194 mutex_enter(&pdk->dk_rawlock); in dkwedge_read()
1195 if (pdk->dk_rawopens != 0) { in dkwedge_read()
1196 KASSERT(pdk->dk_rawvp != NULL); in dkwedge_read()
1198 ++pdk->dk_rawopens; in dkwedge_read()
1199 bdvp = pdk->dk_rawvp; in dkwedge_read()
1205 mutex_exit(&pdk->dk_rawlock); in dkwedge_read()
1224 mutex_enter(&pdk->dk_rawlock); in dkwedge_read()
1226 --pdk->dk_rawopens; in dkwedge_read()
1230 mutex_exit(&pdk->dk_rawlock); in dkwedge_read()