Lines Matching refs:ul

87 ldl_errorstate(ml_unit_t *ul)
91 if (ldl_iserror(ul))
93 else if (ldl_isherror(ul))
99 md_devname(mddb_getsetnum(ul->un_recid), ul->un_dev, NULL, 0), str);
107 logcommitdb(ml_unit_t *ul)
113 uniqtime32(&ul->un_timestamp);
118 recids[0] = ul->un_recid;
119 if (ul->un_status & LDL_METADEVICE) {
120 struct mdc_unit *c = MD_UNIT(md_getminor(ul->un_dev));
277 ldl_build_incore(ml_unit_t *ul, int snarfing)
282 setno = mddb_getsetnum(ul->un_recid);
284 ASSERT(ul->un_head_lof >= ul->un_bol_lof);
285 ASSERT(ul->un_bol_lof);
287 if (ul->un_status & LDL_BEING_RESET) {
288 mddb_setrecprivate(ul->un_recid, MD_PRV_PENDCLEAN);
299 ul->un_dev = md_getdevnum(setno, mddb_getsidenum(setno),
300 ul->un_key, MD_NOTRUST_DEVT);
311 if ((md_getmajor(ul->un_dev) == md_major) &&
312 (md_dev_exists(ul->un_dev) == 0)) {
323 ul->un_opencnt = 0;
324 ul->un_transcnt = 0;
325 ul->un_resv = 0;
326 ul->un_utlist = NULL;
327 ul->un_logmap = NULL;
328 ul->un_status |= LDL_FIND_TAIL;
329 ul->un_status &= ~LDL_SCAN_ACTIVE;
330 ASSERT(ul->un_devbsize == DEV_BSIZE);
332 mutex_init(&ul->un_log_mutex, NULL, MUTEX_DRIVER, NULL);
337 bufsize = md_ldl_bufsize(ul);
338 ul->un_rdbuf.cb_nb = 0;
339 md_alloc_rdbuf(&ul->un_rdbuf, bufsize, MAPBLOCKSIZE);
340 ul->un_wrbuf.cb_nb = 0;
341 md_alloc_wrbuf(&ul->un_wrbuf, bufsize);
344 if (ul->un_error & LDL_ANYERROR) {
345 ul->un_error = LDL_HERROR;
346 ldl_errorstate(ul);
348 ul->un_error = 0;
352 ul->un_next = ul_list;
353 ul_list = ul;
363 ml_unit_t *ul;
369 for (ul = ul_list; ul; ul = ul->un_next)
370 if (ul->un_recid == recid)
373 return (ul);
383 ml_unit_t *ul = un->un_l_unit;
385 if (ul == NULL)
389 un->un_next = ul->un_utlist;
390 ul->un_utlist = un;
391 ASSERT((ul->un_logmap == NULL) || (ul->un_logmap == un->un_logmap));
392 ul->un_logmap = un->un_logmap;
403 ml_unit_t *ul = un->un_l_unit;
404 mt_unit_t **utp = &ul->un_utlist;
407 for (utp = &ul->un_utlist;
419 ml_unit_t *ul;
433 for (ul = ul_list; ul; ul = ul->un_next)
434 if ((ul->un_key == key) &&
435 (mddb_getsetnum(ul->un_recid) == setno))
439 if (ul)
440 return (ul->un_recid);
450 ul = (ml_unit_t *)mddb_getrecaddr_resize(recid, sizeof (*ul), 0);
452 ul->un_recid = recid;
453 ul->un_key = key;
454 ul->un_dev = md_getdevnum(setno, mddb_getsidenum(setno), key,
456 ul->un_bol_lof = (off32_t)dbtob(un->un_l_sblk);
457 ul->un_eol_lof = ul->un_bol_lof + (off32_t)dbtob(un->un_l_nblks);
458 ul->un_pwsblk = un->un_l_pwsblk;
459 ul->un_nblks = un->un_l_nblks;
460 ul->un_tblks = un->un_l_tblks;
461 ul->un_maxresv = un->un_l_maxresv;
462 ul->un_maxtransfer = (uint_t)dbtob(un->un_l_maxtransfer);
463 ul->un_devbsize = DEV_BSIZE;
469 ul->un_head_lof = ul->un_bol_lof;
470 ul->un_tail_lof = ul->un_bol_lof;
471 ul->un_head_ident = tv.tv_sec;
472 ul->un_tail_ident = tv.tv_sec;
474 if (md_getmajor(ul->un_dev) == md_major)
475 ul->un_status |= LDL_METADEVICE;
477 md_set_parent(ul->un_dev, (int)MD_MULTI_PARENT);
478 (void) ldl_build_incore(ul, 0);
479 logcommitdb(ul);
484 ldl_open_dev(mt_unit_t *un, ml_unit_t *ul)
494 if (ul->un_opencnt) {
495 ul->un_opencnt++;
500 tmpdev = ul->un_dev;
505 md_devid_found(setno, side, ul->un_key) == 1) {
506 tmpdev = md_resolve_bydevid(mnum, tmpdev, ul->un_key);
509 ul->un_dev = tmpdev;
512 ul->un_opencnt++;
519 ldl_close_dev(ml_unit_t *ul)
524 ul->un_opencnt--;
526 if (ul->un_opencnt) {
532 md_layered_close(ul->un_dev, MD_OFLG_NULL);
542 ldl_isherror(ml_unit_t *ul)
544 return ((ul != NULL) && (ul->un_error & LDL_HERROR));
548 ldl_iserror(ml_unit_t *ul)
550 return ((ul != NULL) && (ul->un_error & LDL_ERROR));
554 md_ldl_bufsize(ml_unit_t *ul)
565 bufsize = ul->un_maxtransfer;
568 if (ul->un_transcnt)
569 bufsize *= ul->un_transcnt;
575 if (bufsize > ul->un_maxtransfer)
576 bufsize = ul->un_maxtransfer;
581 * if necessary; open all underlying devices for ul and start threads
587 ml_unit_t *ul = un->un_l_unit;
594 if (ul == NULL) {
607 ldl_unlist(ml_unit_t *ul)
615 for (ulp = &ul_list; *ulp && (*ulp != ul); ulp = &(*ulp)->un_next);
617 *ulp = ul->un_next;
627 ldl_cleanup(ml_unit_t *ul)
632 sv.setno = mddb_getsetnum(ul->un_recid);
633 sv.key = ul->un_key;
635 mddb_deleterec_wrapper(ul->un_recid);
640 ldl_delete(ml_unit_t *ul, int removing)
646 ldl_unlist(ul);
651 md_free_cirbuf(&ul->un_rdbuf);
652 md_free_cirbuf(&ul->un_wrbuf);
654 mutex_destroy(&ul->un_log_mutex);
657 md_reset_parent(ul->un_dev);
658 ul->un_status |= LDL_BEING_RESET;
659 logcommitdb(ul);
660 ldl_cleanup(ul);
672 ml_unit_t *ul = un->un_l_unit;
674 if (ul == NULL)
691 if (ul->un_utlist)
694 ldl_delete(ul, removing);