Lines Matching refs:raidp

71 	md_raid_t	*raidp
74 if (raidp->cols.cols_val != NULL) {
75 assert(raidp->cols.cols_len > 0);
76 Free(raidp->cols.cols_val);
78 Free(raidp);
95 md_raid_t *raidp;
123 raidp = Zalloc(sizeof (*raidp));
128 raidp->cols.cols_len = ncol;
129 raidp->cols.cols_val = Zalloc(raidp->cols.cols_len *
130 sizeof (*raidp->cols.cols_val));
133 raidp->common.namep = raidnp;
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;
149 assert(raidp->orig_ncol <= ncol);
151 ((raidp->hspnamep = metahsphspname(&sp, mr->un_hsp_id,
159 md_raidcol_t *mdrcp = &raidp->cols.cols_val[col];
224 raidp->resync_flags = ri.ri_flags;
225 raidp->percent_dirty = ri.ri_percent_dirty;
226 raidp->percent_done = ri.ri_percent_done;
230 dnp->unitp = (md_common_t *)raidp;
231 return (raidp);
236 meta_free_raid(raidp);
266 md_raid_t *raidp;
274 if ((raidp = meta_get_raid(sp, raidnp, ep)) == NULL)
278 for (col = 0; (col < raidp->cols.cols_len); ++col) {
279 md_raidcol_t *cp = &raidp->cols.cols_val[col];
382 md_raid_t *raidp,
394 if ((raidp->common.revision & MD_64BIT_META_DEV) == 0) {
401 if ((raidp->common.revision & MD_FN_META_DEV) == 0) {
408 if (fprintf(fp, "%s -r", raidp->common.namep->cname) == EOF)
414 for (col = 0; (col < raidp->cols.cols_len); ++col) {
415 md_raidcol_t *mdrcp = &raidp->cols.cols_val[col];
425 if (fprintf(fp, " -i %lldb", raidp->interlace) == EOF)
428 if (raidp->pw_count != PWCNT_MIN)
429 if (fprintf(fp, " -w %d", raidp->pw_count) == EOF)
432 if (raidp->hspnamep != NULL) {
433 if (fprintf(fp, " -h %s", raidp->hspnamep->hspname) == EOF)
436 if (raidp->orig_ncol != raidp->cols.cols_len) {
437 assert(raidp->orig_ncol < raidp->cols.cols_len);
438 if (fprintf(fp, " -o %u", raidp->orig_ncol) == EOF)
458 md_raid_t *raidp
463 for (col = 0; (col < raidp->cols.cols_len); ++col) {
464 md_raidcol_t *cp = &raidp->cols.cols_val[col];
478 md_raid_t *raidp,
486 *tvp = raidp->timestamp;
504 if (find_resyncing_column(raidp) >= 0)
508 switch (raidp->state) {
527 find_erred_column(md_raid_t *raidp, rcs_state_t state)
531 for (col = 0; (col < raidp->cols.cols_len); ++col) {
532 md_raidcol_t *cp = &raidp->cols.cols_val[col];
545 raid_state_to_action(md_raid_t *raidp)
548 mdname_t *raidnp = raidp->common.namep;
552 if (raidp->state & RUS_DOI) {
559 if ((err_col = find_erred_column(raidp,
564 assert(err_col < raidp->cols.cols_len);
565 colnp = raidp->cols.cols_val[err_col].colnamep;
568 ((raidp->state == RUS_LAST_ERRED) ? "-f " : ""),
576 if ((err_col = find_erred_column(raidp, RCS_LAST_ERRED)) >= 0) {
579 assert(err_col < raidp->cols.cols_len);
580 colnp = raidp->cols.cols_val[err_col].colnamep;
583 ((raidp->state == RUS_LAST_ERRED) ? "-f " : ""),
780 md_raid_t *raidp,
788 uint_t ncol = raidp->cols.cols_len;
789 uint_t orig_ncol = raidp->orig_ncol;
790 diskaddr_t column_size = raidp->column_size;
800 if ((raidp->common.revision & MD_64BIT_META_DEV) == 0) {
807 if ((raidp->common.revision & MD_FN_META_DEV) == 0) {
816 raidp->common.namep->cname) == EOF) {
823 if (metaismeta(raidp->common.namep)) {
824 if (meta_get_tstate(raidp->common.namep->dev, &tstate, ep) != 0)
828 raid_state = raid_state_to_name(raidp, &tv, tstate);
858 } else if ((p = raid_state_to_action(raidp)) != NULL) {
866 if (raidp->resync_flags & MD_RI_INPROGRESS) {
869 raidp->percent_done/10,
870 raidp->percent_done % 10) == EOF) {
873 } else if (raidp->resync_flags & MD_GROW_INPROGRESS) {
877 raidp->percent_done/10,
878 raidp->percent_done % 10) == EOF) {
881 } else if (raidp->state & RUS_REGEN) {
885 raidp->percent_done/10,
886 raidp->percent_done % 10) == EOF) {
893 if (raidp->hspnamep != NULL) {
894 if (meta_print_raid_options(raidp->hspnamep,
902 raidp->interlace) == EOF) {
908 raidp->common.size,
909 meta_number_to_string(raidp->common.size, DEV_BSIZE)) == EOF) {
915 mdname_t *raidnp = raidp->common.namep;
962 strlen(raidp->cols.cols_val[col].colnamep->cname));
995 md_raidcol_t *mdrcp = &raidp->cols.cols_val[col];
1050 md_raidcol_t *mdrcp = &raidp->cols.cols_val[col];
1087 md_raid_t *raidp;
1123 if ((raidp = meta_get_raid_common(sp, raidnp,
1129 (MD_HAS_PARENT(raidp->common.parent))) {
1135 if (raid_print(raidp, fname, fp, options, ep) != 0)
1138 if (raid_report(sp, raidp, fname, fp, options, ep) != 0)
1143 for (col = 0; col < raidp->cols.cols_len; ++col) {
1144 md_raidcol_t *colp = &raidp->cols.cols_val[col];
1279 md_raid_t *raidp;
1282 if ((raidp = meta_get_raid(sp, raidnp, ep)) == NULL)
1284 for (col = 0; (col < raidp->cols.cols_len); ++col) {
1285 md_raidcol_t *cp = &raidp->cols.cols_val[col];
1447 md_raid_t *raidp;
1458 if ((raidp = meta_get_raid(sp, raidnp, ep)) == NULL)
1463 if (raidp->hspnamep == NULL)
1466 paramsp->hsp_id = raidp->hspnamep->hsp;
1861 md_raid_t *raidp,
1866 mdname_t *raidnp = raidp->common.namep;
1870 thisnp = raidp->cols.cols_val[col].colnamep;
1872 md_raidcol_t *mdcp = &raidp->cols.cols_val[c];
1921 md_raid_t *raidp,
1926 mdname_t *raidnp = raidp->common.namep;
1934 if (((ncol = raidp->cols.cols_len) < MD_RAID_MIN) ||
1935 (raidp->orig_ncol > ncol)) {
1940 if (raidp->interlace == 0) {
1941 raidp->interlace = meta_default_raid_interlace();
1945 switch (raidp->state) {
1955 if (meta_raid_check_interlace(raidp->interlace, raidnp->cname, ep) != 0)
1960 if ((raidp->hspnamep != NULL) &&
1961 (metachkhsp(sp, raidp->hspnamep, ep) != 0)) {
1968 md_raidcol_t *mdcp = &raidp->cols.cols_val[col];
1973 if (raidp->state == RUS_INIT)
1990 size = rounddown(size, raidp->interlace);
1996 if (check_twice(raidp, col, ep) != 0)
2009 md_raid_t *raidp,
2021 for (col = 0; (col < raidp->cols.cols_len); ++col) {
2022 md_raidcol_t *mdcp = &raidp->cols.cols_val[col];
2034 assert(raidp->cols.cols_len > 0);
2035 if ((geomp = metagetgeom(raidp->cols.cols_val[0].colnamep,
2039 if (meta_setup_geom((md_unit_t *)mr, raidp->common.namep, geomp,
2063 meta_raid_valid(md_raid_t *raidp, mr_unit_t *mr)
2073 md_raidcol_t *cp = &raidp->cols.cols_val[col];
2142 md_raid_t *raidp,
2147 mdname_t *raidnp = raidp->common.namep;
2148 uint_t ncol = raidp->cols.cols_len;
2149 uint_t orig_ncol = raidp->orig_ncol;
2164 if (meta_check_raid(sp, raidp, options, ep) != 0)
2183 mr->un_state = raidp->state;
2186 mr->un_segsize = (uint_t)raidp->interlace;
2187 if (raidp->hspnamep != NULL) {
2188 mr->un_hsp_id = raidp->hspnamep->hsp;
2197 md_raidcol_t *cp = &raidp->cols.cols_val[col];
2264 if (raidp->pw_count)
2265 mr->un_pwcnt = raidp->pw_count;
2301 if (raid_geom(raidp, mr, ep) != 0)
2312 md_raidcol_t *cp = &raidp->cols.cols_val[col];
2338 md_raidcol_t *cp = &raidp->cols.cols_val[col];
2352 raidp->common.size = mr->c.un_total_blocks;
2353 raidp->column_size = mr->un_segsize * mr->un_segsincolumn;
2363 (meta_raid_valid(raidp, mr) != 0)) {
2421 md_raid_t *raidp = NULL;
2484 raidp = Zalloc(sizeof (*raidp));
2487 raidp->common.namep = raidnp;
2488 raidp->common.type = MD_METARAID;
2489 raidp->state = RUS_INIT;
2494 raidp->cols.cols_len = ncol;
2496 raidp->cols.cols_val =
2497 Zalloc(ncol * sizeof (*raidp->cols.cols_val));
2500 md_raidcol_t *mdc = &raidp->cols.cols_val[col];
2522 if ((raidp->hspnamep = metahspname(spp, optarg,
2531 if (raidp->hspnamep->hsp == MD_HSP_NONE) {
2533 raidp->hspnamep->hsp, optarg);
2539 if (parse_interlace(uname, optarg, &raidp->interlace,
2543 if (meta_raid_check_interlace(raidp->interlace,
2549 raidp->state = RUS_OKAY;
2553 if ((sscanf(optarg, "%u", &raidp->orig_ncol) != 1) ||
2554 ((int)raidp->orig_ncol < 0)) {
2557 if ((raidp->orig_ncol < MD_RAID_MIN) ||
2558 (raidp->orig_ncol > ncol)) {
2564 if ((sscanf(optarg, "%d", &raidp->pw_count) != 1) ||
2565 ((int)raidp->pw_count < 0))
2567 if (((int)raidp->pw_count < PWCNT_MIN) ||
2568 ((int)raidp->pw_count > PWCNT_MAX)) {
2588 if (raidp->orig_ncol == 0)
2589 raidp->orig_ncol = ncol;
2592 if (meta_create_raid(*spp, raidp, options, ep) != 0)
2616 if (raidp != NULL)
2617 meta_free_raid(raidp);
2632 md_raid_t *raidp;
2669 if ((raidp = meta_get_raid(sp, raidnp, ep)) == NULL)
2673 if (MD_HAS_PARENT(raidp->common.parent)) {
2698 for (col = 0; (col < raidp->cols.cols_len); ++col) {
2699 md_raidcol_t *cp = &raidp->cols.cols_val[col];
2728 md_raid_t *raidp;
2730 if ((raidp = meta_get_raid(sp, nlp->namep, ep)) == NULL) {
2734 if (raidp->state != RUS_OKAY && raidp->state != RUS_INIT) {