Lines Matching defs:peg

32 	struct pv_segment *peg;
34 if (!(peg = dm_pool_zalloc(mem, sizeof(*peg)))) {
39 peg->pv = pv;
40 peg->pe = pe;
41 peg->len = len;
42 peg->lvseg = lvseg;
43 peg->lv_area = lv_area;
45 dm_list_init(&peg->list);
47 return peg;
52 struct pv_segment *peg;
58 if (!(peg = _alloc_pv_segment(mem, pv, 0, pv->pe_count, NULL, 0)))
61 dm_list_add(&pv->segments, &peg->list);
68 struct pv_segment *peg, *pego;
73 if (!(peg = _alloc_pv_segment(mem, pego->pv, pego->pe,
77 dm_list_add(peg_new, &peg->list);
84 * Split peg at given extent.
87 static int _pv_split_segment(struct physical_volume *pv, struct pv_segment *peg,
92 if (!(peg_new = _alloc_pv_segment(pv->fmt->cmd->mem, peg->pv, pe,
93 peg->len + peg->pe - pe,
97 peg->len = peg->len - peg_new->len;
99 dm_list_add_h(&peg->list, &peg_new->list);
101 if (peg->lvseg) {
102 peg->pv->pe_alloc_count -= peg_new->len;
103 peg->lvseg->lv->vg->free_count += peg_new->len;
114 struct pv_segment *peg;
119 if (!(peg = find_peg_by_pe(pv, pe))) {
125 /* This is a peg start already */
126 if (pe == peg->pe)
129 if (!_pv_split_segment(pv, peg, pe))
145 struct pv_segment *peg;
155 if (!(peg = find_peg_by_pe(pv, pe))) {
161 peg->lvseg = seg;
162 peg->lv_area = area_num;
164 peg->pv->pe_alloc_count += area_len;
165 peg->lvseg->lv->vg->free_count -= area_len;
167 return peg;
170 int release_pv_segment(struct pv_segment *peg, uint32_t area_reduction)
172 if (!peg->lvseg) {
174 "%s PE %" PRIu32, pv_dev_name(peg->pv), peg->pe);
178 if (peg->lvseg->area_len == area_reduction) {
179 peg->pv->pe_alloc_count -= area_reduction;
180 peg->lvseg->lv->vg->free_count += area_reduction;
182 peg->lvseg = NULL;
183 peg->lv_area = 0;
190 if (!pv_split_segment(peg->pv, peg->pe + peg->lvseg->area_len -
254 struct pv_segment *peg;
267 dm_list_iterate_items(peg, &pv->segments) {
268 s = peg->lv_area;
272 pv_dev_name(pv), segno++, peg->pe, peg->len,
273 peg->lvseg ? peg->lvseg->lv->name : "NULL",
274 peg->lvseg ? peg->lvseg->le : 0, s);
276 if (start_pe != peg->pe) {
278 start_pe, peg->pe);
281 if (peg->lvseg) {
282 if (seg_type(peg->lvseg, s) != AREA_PV) {
286 if (seg_pvseg(peg->lvseg, s) != peg) {
290 if (peg->lvseg->area_len != peg->len) {
292 peg->len,
293 peg->lvseg->area_len);
296 alloced += peg->len;
298 start_pe += peg->len;
340 struct pv_segment *peg, *pegt;
352 dm_list_iterate_items(peg, &pv->segments) {
353 if (peg->pe + peg->len <= new_pe_count)
356 if (peg->lvseg) {
367 dm_list_iterate_items_safe(peg, pegt, &pv->segments) {
368 if (peg->pe + peg->len > new_pe_count)
369 dm_list_del(&peg->list);
383 struct pv_segment *peg;
393 peg = _alloc_pv_segment(pv->fmt->cmd->mem, pv,
397 dm_list_add(&pv->segments, &peg->list);