Lines Matching defs:mr

94 	mr_unit_t		*mr;
118 if ((mr = (mr_unit_t *)meta_get_mdunit(sp, raidnp, ep)) == NULL)
120 assert(mr->c.un_type == MD_METARAID);
126 ncol = mr->un_totalcolumncnt;
134 raidp->common.type = mr->c.un_type;
135 raidp->common.state = mr->c.un_status;
136 raidp->common.capabilities = mr->c.un_capabilities;
137 raidp->common.parent = mr->c.un_parent;
138 raidp->common.size = mr->c.un_total_blocks;
139 raidp->common.user_flags = mr->c.un_user_flags;
140 raidp->common.revision = mr->c.un_revision;
143 raidp->state = mr->un_state;
144 raidp->timestamp = mr->un_timestamp;
145 raidp->interlace = mr->un_segsize;
146 raidp->orig_ncol = mr->un_origcolumncnt;
147 raidp->column_size = mr->un_segsize * mr->un_segsincolumn;
148 raidp->pw_count = mr->un_pwcnt;
150 if ((mr->un_hsp_id != MD_HSP_NONE) &&
151 ((raidp->hspnamep = metahsphspname(&sp, mr->un_hsp_id,
158 mr_column_t *rcp = &mr->un_column[col];
179 if (HOTSPARED(mr, col)) {
229 Free(mr);
235 Free(mr);
916 mr_unit_t *mr;
919 if ((mr = (mr_unit_t *)meta_get_mdunit(sp, raidnp, ep)) == NULL)
921 assert(mr->c.un_type == MD_METARAID);
926 mr->un_pwcnt) == EOF) {
927 Free(mr);
932 (mr->un_pwsize / mr->un_pwcnt)) == EOF) {
933 Free(mr);
938 mr->un_pwsize) == EOF) {
939 Free(mr);
942 Free(mr);
1165 mr_unit_t *mr,
1177 if (meta_adjust_geom((md_unit_t *)mr, raidnp, geomp->write_reinstruct,
1192 mr_unit_t *mr,
1201 diskaddr_t column_size = mr->un_segsize * mr->un_segsincolumn;
1225 mdc->un_orig_devstart += mr->un_pwsize;
1233 if (maxio < mr->un_maxio) {
1256 mr->c.un_actual_tb += column_size;
1259 if (adjust_geom(raidnp, colnp, mr, ep) != 0)
1263 mr->un_totalcolumncnt++;
1519 mr_unit_t *mr;
1526 if ((mr = (mr_unit_t *)meta_get_mdunit(sp, raidnp, ep)) == NULL)
1528 column_size = mr->un_segsize * mr->un_segsincolumn;
1551 if (cinfop->maxtransfer < mr->un_maxio) {
1562 Free(mr);
2010 mr_unit_t *mr,
2039 if (meta_setup_geom((md_unit_t *)mr, raidp->common.namep, geomp,
2048 meta_raid_state_cnt(mr_unit_t *mr, rcs_state_t state)
2053 for (col = 0; col < mr->un_totalcolumncnt; col++)
2054 if (mr->un_column[col].un_devstate & state)
2063 meta_raid_valid(md_raid_t *raidp, mr_unit_t *mr)
2072 for (col = 0; col < mr->un_totalcolumncnt; col++) {
2080 (mr->un_column[col].un_pwstart * DEV_BSIZE), SEEK_SET) < 0)
2092 if (mr->c.un_revision & MD_64BIT_META_DEV) {
2109 if ((rpw->rpw_origcolumncnt != mr->un_origcolumncnt) ||
2111 mr->un_totalcolumncnt) ||
2112 (rpw->rpw_segsize != mr->un_segsize) ||
2113 (rpw->rpw_segsincolumn != mr->un_segsincolumn) ||
2114 (rpw->rpw_pwcnt != mr->un_pwcnt) ||
2116 mr->un_column[col].un_pwstart) ||
2118 mr->un_column[col].un_devstart) ||
2119 (rpw->rpw_pwsize != mr->un_pwsize))
2151 mr_unit_t *mr;
2168 rdsize = sizeof (*mr) - sizeof (mr->un_column[0]);
2169 rdsize += ncol * sizeof (mr->un_column[0]);
2170 mr = Zalloc(rdsize);
2179 mr->c.un_type = MD_METARAID;
2180 MD_SID(mr) = meta_getminor(raidnp->dev);
2181 mr->c.un_size = rdsize;
2182 mr->un_magic = RAID_UNMAGIC;
2183 mr->un_state = raidp->state;
2184 mr->un_timestamp = creation_time;
2185 mr->un_origcolumncnt = orig_ncol;
2186 mr->un_segsize = (uint_t)raidp->interlace;
2188 mr->un_hsp_id = raidp->hspnamep->hsp;
2190 mr->un_hsp_id = MD_HSP_NONE;
2199 mr_column_t *mdc = &mr->un_column[col];
2237 if (mr->un_state == RUS_INIT)
2254 assert(col == mr->un_origcolumncnt);
2261 mr->un_maxio = disk_maxio; /* smallest maxio */
2262 mr->un_iosize = min(mr->un_maxio, (mr->un_segsize + 1));
2263 pwes = mr->un_iosize;
2265 mr->un_pwcnt = raidp->pw_count;
2267 mr->un_pwcnt = PWCNT_MIN;
2268 if ((mr->un_pwcnt < PWCNT_MIN) || (mr->un_pwcnt > PWCNT_MAX)) {
2272 mr->un_pwsize = roundup((mr->un_pwcnt * pwes), 2);
2275 non_pw_blks = disk_size - mr->un_pwsize; /* smallest disk */
2276 if ((mr->un_pwsize > disk_size) ||
2277 (non_pw_blks < (diskaddr_t)mr->un_segsize)) {
2281 mr->un_segsincolumn = non_pw_blks / mr->un_segsize;
2282 column_size = mr->un_segsize * mr->un_segsincolumn;
2288 mr->un_pwsize = rounddown(((uint_t)(disk_size - column_size)), 2);
2289 mr->un_pwcnt = mr->un_pwsize / pwes;
2290 assert(mr->un_pwcnt >= PWCNT_MIN);
2291 mr->un_pwsize = roundup((mr->un_pwcnt * pwes), 2);
2292 assert((mr->un_pwsize + column_size) <= disk_size);
2299 mr->c.un_actual_tb = column_size * (mr->un_origcolumncnt - 1);
2301 if (raid_geom(raidp, mr, ep) != 0)
2304 create_flag = meta_check_devicesize(mr->c.un_total_blocks);
2314 mr_column_t *mdc = &mr->un_column[col];
2323 mdc->un_orig_devstart += mr->un_pwsize;
2335 mr->un_totalcolumncnt = mr->un_origcolumncnt;
2336 assert(col == mr->un_origcolumncnt);
2340 mr_column_t *mdc = &mr->un_column[col];
2343 if (attach_raid_col(sp, raidnp, mr, mdc, colnp,
2348 assert(mr->un_totalcolumncnt == ncol);
2352 raidp->common.size = mr->c.un_total_blocks;
2353 raidp->column_size = mr->un_segsize * mr->un_segsincolumn;
2362 if ((mr->un_state & RUS_OKAY) &&
2363 (meta_raid_valid(raidp, mr) != 0)) {
2372 mr->c.un_revision |= MD_64BIT_META_DEV;
2375 mr->c.un_revision &= ~MD_64BIT_META_DEV;
2378 set_params.mnum = MD_SID(mr);
2379 set_params.size = mr->c.un_size;
2380 set_params.mdp = (uintptr_t)mr;
2391 Free(mr);