Lines Matching defs:diskp
1054 disk_construct(struct disk *diskp)
1056 rw_init_flags(&diskp->dk_lock, "dklk", RWL_IS_VNODE);
1057 mtx_init(&diskp->dk_mtx, IPL_BIO);
1059 diskp->dk_flags |= DKF_CONSTRUCTED;
1068 disk_attach(struct device *dv, struct disk *diskp)
1074 if (!ISSET(diskp->dk_flags, DKF_CONSTRUCTED))
1075 disk_construct(diskp);
1082 diskp->dk_label = malloc(sizeof(struct disklabel), M_DEVBUF,
1084 if (diskp->dk_label == NULL)
1090 microuptime(&diskp->dk_attachtime);
1095 TAILQ_INSERT_TAIL(&disklist, diskp, dk_link);
1102 diskp->dk_device = dv;
1103 diskp->dk_devno = NODEV;
1107 diskp->dk_devno =
1110 if (diskp->dk_devno != NODEV) {
1117 dat->dk = diskp;
1125 softraid_disk_attach(diskp, 1);
1156 disk_detach(struct disk *diskp)
1161 softraid_disk_attach(diskp, -1);
1166 free(diskp->dk_label, M_DEVBUF, sizeof(*diskp->dk_label));
1171 TAILQ_REMOVE(&disklist, diskp, dk_link);
1239 disk_busy(struct disk *diskp)
1246 mtx_enter(&diskp->dk_mtx);
1247 if (diskp->dk_busy++ == 0)
1248 microuptime(&diskp->dk_timestamp);
1249 mtx_leave(&diskp->dk_mtx);
1257 disk_unbusy(struct disk *diskp, long bcount, daddr_t blkno, int read)
1261 mtx_enter(&diskp->dk_mtx);
1263 if (diskp->dk_busy-- == 0)
1264 printf("disk_unbusy: %s: dk_busy < 0\n", diskp->dk_name);
1268 timersub(&dv_time, &diskp->dk_timestamp, &diff_time);
1269 timeradd(&diskp->dk_time, &diff_time, &diskp->dk_time);
1271 diskp->dk_timestamp = dv_time;
1274 diskp->dk_rbytes += bcount;
1275 diskp->dk_rxfer++;
1277 diskp->dk_wbytes += bcount;
1278 diskp->dk_wxfer++;
1281 diskp->dk_seek++;
1283 mtx_leave(&diskp->dk_mtx);