Lines Matching refs:un

134 shadow_debug(mt_unit_t	*un,		/* trans unit info */
148 sb = bioclone(pb, 0, pb->b_bcount, md_dev64_to_dev(un->un_s_dev),
213 trans_commit(mt_unit_t *un, int domstr)
219 if (md_get_setstatus(MD_UN2SET(un)) & MD_SET_STALE)
222 recids[ri++] = un->c.un_record_id;
225 if (md_getmajor(un->un_m_dev) == md_major) {
226 su = MD_UNIT(md_getminor(un->un_m_dev));
234 uniqtime32(&un->un_timestamp);
239 trans_close_all_devs(mt_unit_t *un)
241 if ((un->un_flags & TRANS_NEED_OPEN) == 0) {
242 md_layered_close(un->un_m_dev, MD_OFLG_NULL);
243 if (un->un_l_unit)
244 ldl_close_dev(un->un_l_unit);
245 un->un_flags |= TRANS_NEED_OPEN;
250 trans_open_all_devs(mt_unit_t *un)
253 minor_t mnum = MD_SID(un);
254 md_dev64_t tmpdev = un->un_m_dev;
255 set_t setno = MD_MIN2SET(MD_SID(un));
262 md_devid_found(setno, side, un->un_m_key) == 1) {
263 tmpdev = md_resolve_bydevid(mnum, tmpdev, un->un_m_key);
266 un->un_m_dev = tmpdev;
271 if (un->un_l_unit) {
272 err = ldl_open_dev(un, un->un_l_unit);
286 mt_unit_t *un = (mt_unit_t *)p;
294 un->un_debug = mt_debug;
295 un->un_s_dev = NODEV64;
297 mnum = MD_SID(un);
309 un->un_m_dev = md_getdevnum(setno, mddb_getsidenum(setno),
310 un->un_m_key, MD_NOTRUST_DEVT);
316 if (MD_STATUS(un) & MD_UN_BEING_RESET) {
317 mddb_setrecprivate(un->c.un_record_id, MD_PRV_PENDCLEAN);
328 if ((md_getmajor(un->un_m_dev) == md_major) &&
329 (md_dev_exists(un->un_m_dev) == 0)) {
336 un->un_flags &= (TRANS_DETACHING | TRANS_DETACHED);
337 un->un_flags |= TRANS_NEED_OPEN;
338 if ((un->un_flags & TRANS_DETACHED) == 0)
339 un->un_flags |= TRANS_ATTACHING;
344 if ((un->un_flags & TRANS_DETACHED) == 0)
345 if (ldl_findlog(un->un_l_recid) == NULL)
351 un->un_next = NULL;
352 un->un_l_unit = NULL;
353 un->un_deltamap = NULL;
354 un->un_udmap = NULL;
355 un->un_logmap = NULL;
356 un->un_matamap = NULL;
357 un->un_shadowmap = NULL;
358 un->un_ut = NULL;
359 un->un_logreset = 0;
360 un->un_dev = md_makedevice(md_major, mnum);
361 MD_STATUS(un) = 0;
364 MD_CAPAB(un) = (MD_CAN_META_CHILD & ~MD_CAN_PARENT);
369 trans_attach(un, 0);
374 if (md_getmajor(un->un_m_dev) == md_major) {
377 c = MD_UNIT(md_getminor(un->un_m_dev));
378 un->c.un_total_blocks = c->un_total_blocks;
382 md_nblocks_set(mnum, un->c.un_total_blocks);
383 MD_UNIT(mnum) = un;
389 trans_detach(mt_unit_t *un, int force)
391 mdi_unit_t *ui = MDI_UNIT(MD_SID(un));
404 if (un->un_flags & (TRANS_DETACHED | TRANS_ATTACHING))
411 un->un_flags |= TRANS_DETACHING;
413 trans_commit(un, 0);
416 MD_UN2SET(un), MD_SID(un));
429 * un->un_l_unit set to NULL
432 error = ldl_reset(un, 1, force);
440 trans_commit(un, 0);
442 SE_NOTIFY(EC_SVM_CONFIG, ESC_SVM_DETACH, TAG_METADEVICE, MD_UN2SET(un),
443 MD_SID(un));
449 trans_attach(mt_unit_t *un, int attaching)
451 mdi_unit_t *ui = MDI_UNIT(MD_SID(un));
462 if ((un->un_flags & TRANS_ATTACHING) == 0)
468 ul = ldl_findlog(un->un_l_recid);
471 un->un_l_dev = ul->un_dev;
481 un->un_l_unit = ul;
486 ldl_utadd(un);
491 un->un_flags &= ~TRANS_ATTACHING;
496 trans_reset(mt_unit_t *un, minor_t mnum, int removing, int force)
505 error = ldl_reset(un, removing, force);
512 trans_close_all_devs(un);
522 md_reset_parent(un->un_m_dev);
523 MD_STATUS(un) |= MD_UN_BEING_RESET;
524 trans_commit(un, 1);
525 SE_NOTIFY(EC_SVM_CONFIG, ESC_SVM_DELETE, TAG_METADEVICE, MD_UN2SET(un),
526 MD_SID(un));
530 sv.key = un->un_m_key;
532 vtoc_id = un->c.un_vtoc_id;
534 mddb_deleterec_wrapper(un->c.un_record_id);
642 mt_unit_t *un;
649 un = (mt_unit_t *)md_unit_readerlock(ui);
664 if (md_checkbuf(ui, (md_unit_t *)un, pb) != 0) {
678 ps->ps_un = un;
685 cb = bioclone(pb, 0, pb->b_bcount, md_dev64_to_dev(un->un_m_dev),
695 if ((un->un_s_dev != NODEV64) &&
697 shadow_debug(un, pb, ps, cb, flag, private);
761 trans_cleanup(mt_unit_t *un)
765 MD_STATUS(un) |= MD_UN_LOG_DELETED;
766 trans_commit(un, 0);
769 sv.setno = MD_UN2SET(un);
770 sv.key = un->un_m_key;
772 mddb_deleterec_wrapper(un->c.un_record_id);
780 mt_unit_t *un;
805 un = (mt_unit_t *)mddb_getrecaddr(recid);
806 (void) trans_detach(un, 1);
808 trans_cleanup(un);
918 un = big_un;
919 un->c.un_revision &= ~MD_64BIT_META_DEV;
922 un = dep->de_rb_userdata;
928 (void) md_create_minor_node(MD_MIN2SET(MD_SID(un)), MD_SID(un));
930 if (MD_UNIT(MD_SID(un)) != NULL) {
936 if (trans_build_incore(un, 1) == 0) {
938 md_create_unit_incore(MD_SID(un), &trans_md_ops, 0);
959 mt_unit_t *un;
978 un = (mt_unit_t *)MD_UNIT(mnum);
979 if ((un->un_flags & TRANS_NEED_OPEN) == 0) {
980 trans_close_all_devs(un);
1041 mt_unit_t *un;
1049 un = (mt_unit_t *)md_unit_openclose_enter(ui);
1065 if (un->un_flags & TRANS_NEED_OPEN) {
1067 ldl_open_underlying(un);
1068 if (un->un_flags & TRANS_NEED_OPEN)
1070 un = (mt_unit_t *)md_unit_openclose_enter(ui);
1095 mt_unit_t *un;
1099 un = (mt_unit_t *)md_unit_openclose_enter(ui);
1114 if (un->un_flags & TRANS_DETACHING) {
1119 (void) trans_detach(un, 0);
1122 if (un->un_flags & TRANS_ATTACHING) {
1127 trans_attach(un, 1);