Home | History | Annotate | Download | only in metadata

Lines Matching defs:seg

65 	struct lv_segment *seg, *seg2;
72 dm_list_iterate_items(seg, &lv->segments) {
74 if (seg->le != le) {
77 lv->name, seg_count, le, seg->le);
81 area_multiplier = segtype_is_striped(seg->segtype) ?
82 seg->area_count : 1;
84 if (seg->area_len * area_multiplier != seg->len) {
87 lv->name, seg_count, seg->area_len);
91 if (complete_vg && seg->log_lv) {
92 if (!seg_is_mirrored(seg)) {
99 if (!(seg->log_lv->status & MIRROR_LOG)) {
102 lv->name, seg_count, seg->log_lv->name);
106 if (!(seg2 = first_seg(seg->log_lv)) ||
107 find_mirror_seg(seg2) != seg) {
115 if (complete_vg && seg->status & MIRROR_IMAGE) {
116 if (!find_mirror_seg(seg) ||
117 !seg_is_mirrored(find_mirror_seg(seg))) {
125 if (seg_is_snapshot(seg)) {
126 if (seg->cow && seg->cow == seg->origin) {
129 lv->name, seg_count, seg->cow->name);
134 for (s = 0; s < seg->area_count; s++) {
135 if (seg_type(seg, s) == AREA_UNASSIGNED) {
140 } else if (seg_type(seg, s) == AREA_PV) {
141 if (!seg_pvseg(seg, s) ||
142 seg_pvseg(seg, s)->lvseg != seg ||
143 seg_pvseg(seg, s)->lv_area != s) {
150 if (!seg_lv(seg, s) ||
151 seg_lv(seg, s)->vg != lv->vg ||
152 seg_lv(seg, s) == lv) {
159 if (complete_vg && seg_lv(seg, s) &&
160 (seg_lv(seg, s)->status & MIRROR_IMAGE) &&
161 (!(seg2 = find_seg_by_le(seg_lv(seg, s),
162 seg_le(seg, s))) ||
163 find_mirror_seg(seg2) != seg)) {
171 if (seg_le(seg, s) != le) {
180 dm_list_iterate_items(sl, &seg_lv(seg, s)->segs_using_this_lv)
181 if (sl->seg == seg)
187 seg_lv(seg, s)->name,
188 seg_lv(seg, s)->name, lv->name);
193 seg_lv(seg, s)->name,
200 le += seg->len;
204 seg = sl->seg;
206 for (s = 0; s < seg->area_count; s++) {
207 if (seg_type(seg, s) != AREA_LV)
209 if (lv == seg_lv(seg, s))
212 if (seg->log_lv == lv)
217 lv->name, seg->lv->name, seg->le,
218 seg->le + seg->len - 1,
219 seg->lv->name, lv->name);
225 lv->name, sl->count, seg->lv->name, seg->le,
226 seg->le + seg->len - 1, seg_found);
231 dm_list_iterate_items(seg2, &seg->lv->segments)
232 if (sl->seg == seg2) {
239 seg->lv->name, seg->le, seg->le + seg->len - 1,
258 static int _lv_split_segment(struct logical_volume *lv, struct lv_segment *seg,
263 uint32_t offset = le - seg->le;
266 if (!seg_can_split(seg)) {
268 " in LV %s", seg->segtype->name, le, lv->name);
273 if (!(split_seg = alloc_lv_segment(lv->vg->cmd->mem, seg->segtype,
274 seg->lv, seg->le, seg->len,
275 seg->status, seg->stripe_size,
276 seg->log_lv,
277 seg->area_count, seg->area_len,
278 seg->chunk_size, seg->region_size,
279 seg->extents_copied))) {
284 if (!str_list_dup(lv->vg->cmd->mem, &split_seg->tags, &seg->tags)) {
291 if (seg_is_striped(seg))
292 area_offset /= seg->area_count;
295 seg->area_len = area_offset;
298 seg->len = offset;
300 split_seg->le = seg->le + seg->len;
303 for (s = 0; s < seg->area_count; s++) {
304 seg_type(split_seg, s) = seg_type(seg, s);
307 switch (seg_type(seg, s)) {
309 if (!set_lv_segment_area_lv(split_seg, s, seg_lv(seg, s),
310 seg_le(seg, s) + seg->area_len, 0))
313 seg->le, s, le, seg_lv(seg, s)->name,
319 assign_peg_to_lvseg(seg_pv(seg, s),
320 seg_pe(seg, s) +
321 seg->area_len,
322 seg_pvseg(seg, s)->len -
323 seg->area_len,
327 seg->le, s, le,
328 dev_name(seg_dev(seg, s)),
339 dm_list_add_h(&seg->list, &split_seg->list);
349 struct lv_segment *seg;
351 if (!(seg = find_seg_by_le(lv, le))) {
358 if (le == seg->le)
361 if (!_lv_split_segment(lv, seg, le))