Lines Matching refs:si
306 ore_calc_stripe_info(layout, offset, length, &ios->si); in ore_get_rw_state()
307 ios->length = ios->si.length; in ore_get_rw_state()
541 u64 length, struct ore_striping_info *si) in ore_calc_stripe_info() argument
569 div_u64_rem(file_offset, stripe_unit, &si->unit_off); in ore_calc_stripe_info()
571 si->obj_offset = si->unit_off + (N * stripe_unit) + in ore_calc_stripe_info()
573 si->cur_comp = C - first_dev; in ore_calc_stripe_info()
574 si->cur_pg = si->unit_off / PAGE_SIZE; in ore_calc_stripe_info()
581 si->par_dev = (group_width + group_width - parity - RxP) % in ore_calc_stripe_info()
583 si->dev = (group_width + group_width + C - RxP) % in ore_calc_stripe_info()
585 si->bytes_in_stripe = U; in ore_calc_stripe_info()
586 si->first_stripe_start = M * S + G * T + N * U; in ore_calc_stripe_info()
589 si->par_dev = group_width; in ore_calc_stripe_info()
590 si->dev = C; in ore_calc_stripe_info()
593 si->dev *= layout->mirrors_p1; in ore_calc_stripe_info()
594 si->par_dev *= layout->mirrors_p1; in ore_calc_stripe_info()
595 si->offset = file_offset; in ore_calc_stripe_info()
596 si->length = T - H; in ore_calc_stripe_info()
597 if (si->length > length) in ore_calc_stripe_info()
598 si->length = length; in ore_calc_stripe_info()
600 Nlast = div_u64(H + si->length + U - 1, U); in ore_calc_stripe_info()
601 si->maxdevUnits = Nlast - N; in ore_calc_stripe_info()
603 si->M = M; in ore_calc_stripe_info()
621 bio_size = ios->si.maxdevUnits; in _ore_add_stripe_unit()
623 bio_size = (ios->si.maxdevUnits + 1) * in _ore_add_stripe_unit()
656 _add_stripe_page(ios->sp2d, &ios->si, pages[pg]); in _ore_add_stripe_unit()
675 struct ore_striping_info *si, in _add_parity_units() argument
693 per_dev->offset = si->obj_offset - si->unit_off; in _add_parity_units()
696 ret = _ore_add_parity_unit(ios, si, per_dev, cur_len, in _add_parity_units()
703 si->cur_comp = (si->cur_comp + 1) % in _add_parity_units()
713 struct ore_striping_info *si = &ios->si; in _prepare_for_striping() local
718 unsigned dev = si->dev; in _prepare_for_striping()
729 BUG_ON(length > si->length); in _prepare_for_striping()
739 if (dev == si->dev) { in _prepare_for_striping()
740 WARN_ON(dev == si->par_dev); in _prepare_for_striping()
741 per_dev->offset = si->obj_offset; in _prepare_for_striping()
742 cur_len = stripe_unit - si->unit_off; in _prepare_for_striping()
743 page_off = si->unit_off & ~PAGE_MASK; in _prepare_for_striping()
746 per_dev->offset = si->obj_offset - si->unit_off; in _prepare_for_striping()
763 si->cur_comp = (si->cur_comp + 1) % group_width; in _prepare_for_striping()
764 if (unlikely((dev == si->par_dev) || (!length && ios->sp2d))) { in _prepare_for_striping()
769 dev = si->par_dev; in _prepare_for_striping()
771 si->cur_comp = group_width - ios->layout->parity; in _prepare_for_striping()
777 ret = _add_parity_units(ios, si, dev, first_dev, in _prepare_for_striping()
784 si->par_dev = (devs_in_group + si->par_dev - in _prepare_for_striping()
788 si->cur_comp = 0; in _prepare_for_striping()
789 si->cur_pg = 0; in _prepare_for_striping()
790 si->obj_offset += cur_len; in _prepare_for_striping()
791 si->unit_off = 0; in _prepare_for_striping()
906 per_dev->offset = ios->si.obj_offset; in _write_mirror()
907 per_dev->dev = ios->si.dev + dev; in _write_mirror()
911 (ios->si.unit_off + ios->length > in _write_mirror()
1092 struct ore_striping_info si; member
1105 ore_calc_stripe_info(layout, file_offset, 0, &ti->si); in _calc_trunk_info()
1107 ti->prev_group_obj_off = ti->si.M * stripe_unit; in _calc_trunk_info()
1108 ti->next_group_obj_off = ti->si.M ? (ti->si.M - 1) * stripe_unit : 0; in _calc_trunk_info()
1110 ti->first_group_dev = ti->si.dev - (ti->si.dev % layout->group_width); in _calc_trunk_info()
1148 else if (i < ti.si.dev) /* dev within this group */ in ore_truncate()
1149 obj_size = ti.si.obj_offset + in ore_truncate()
1150 ios->layout->stripe_unit - ti.si.unit_off; in ore_truncate()
1151 else if (i == ti.si.dev) in ore_truncate()
1152 obj_size = ti.si.obj_offset; in ore_truncate()
1154 obj_size = ti.si.obj_offset - ti.si.unit_off; in ore_truncate()