Lines Matching refs:lp
53 struct lvresize_params *lp)
74 lp->stripe_size = vg->extent_size;
76 lp->stripe_size = arg_uint_value(cmd, stripesize_ARG, 0);
78 if (lp->mirrors) {
82 if (lp->stripe_size & (lp->stripe_size - 1)) {
93 const struct lvresize_params *lp)
104 if (lp->resizefs) {
107 "before resizing filesystem", lp->lv_name);
118 display_size(cmd, (uint64_t) lp->extents * vg->extent_size));
124 lp->lv_name) == 'n') {
125 log_print("Logical volume %s NOT reduced", lp->lv_name);
145 const struct lvresize_params *lp,
166 if (dm_snprintf(lv_path, PATH_MAX, "%s%s/%s", cmd->dev_dir, lp->vg_name,
167 lp->lv_name) < 0) {
168 log_error("Couldn't create LV path for %s", lp->lv_name);
176 (uint64_t) lp->extents * vg->extent_size / 2) < 0) {
190 struct lvresize_params *lp)
196 lp->sign = SIGN_NONE;
197 lp->resize = LV_ANY;
201 lp->resize = LV_REDUCE;
203 lp->resize = LV_EXTEND;
212 lp->extents = 100;
213 lp->percent = PERCENT_PVS;
214 lp->sign = SIGN_PLUS;
223 lp->extents = arg_uint_value(cmd, extents_ARG, 0);
224 lp->sign = arg_sign_value(cmd, extents_ARG, SIGN_NONE);
225 lp->percent = arg_percent_value(cmd, extents_ARG, PERCENT_NONE);
230 lp->size = arg_uint64_value(cmd, size_ARG, UINT64_C(0));
231 lp->sign = arg_sign_value(cmd, size_ARG, SIGN_NONE);
232 lp->percent = PERCENT_NONE;
235 if (lp->resize == LV_EXTEND && lp->sign == SIGN_MINUS) {
240 if (lp->resize == LV_REDUCE && lp->sign == SIGN_PLUS) {
245 lp->resizefs = arg_is_set(cmd, resizefs_ARG);
246 lp->nofsck = arg_is_set(cmd, nofsck_ARG);
253 lp->lv_name = argv[0];
257 if (!(lp->lv_name = skip_dev_dir(cmd, lp->lv_name, &dev_dir_found)) ||
258 !(lp->vg_name = extract_vgname(cmd, lp->lv_name))) {
263 if (!validate_name(lp->vg_name)) {
265 lp->vg_name);
269 if ((st = strrchr(lp->lv_name, '/')))
270 lp->lv_name = st + 1;
272 lp->argc = argc;
273 lp->argv = argv;
279 struct lvresize_params *lp)
298 if (!(lvl = find_lv_in_vg(vg, lp->lv_name))) {
300 lp->lv_name, lp->vg_name);
306 lp->stripes = arg_uint_value(cmd, stripes_ARG, 1);
313 lp->mirrors = arg_uint_value(cmd, mirrors_ARG, 1) + 1;
323 !_validate_stripesize(cmd, vg, lp))
340 if (lp->size) {
341 if (lp->size % vg->extent_size) {
342 if (lp->sign == SIGN_MINUS)
343 lp->size -= lp->size % vg->extent_size;
345 lp->size += vg->extent_size -
346 (lp->size % vg->extent_size);
349 display_size(cmd, (uint64_t) lp->size));
352 lp->extents = lp->size / vg->extent_size;
355 if (!(pvh = lp->argc ? create_pv_list(cmd->mem, vg, lp->argc,
356 lp->argv, 1) : &vg->pvs)) {
361 switch(lp->percent) {
363 lp->extents = lp->extents * vg->extent_count / 100;
366 lp->extents = lp->extents * vg->free_count / 100;
369 lp->extents = lp->extents * lv->le_count / 100;
372 if (lp->argc) {
374 lp->extents = lp->extents * pv_extent_count / 100;
376 lp->extents = lp->extents * vg->extent_count / 100;
382 if (lp->sign == SIGN_PLUS)
383 lp->extents += lv->le_count;
385 if (lp->sign == SIGN_MINUS) {
386 if (lp->extents >= lv->le_count) {
388 lp->lv_name);
392 lp->extents = lv->le_count - lp->extents;
395 if (!lp->extents) {
400 if (lp->extents == lv->le_count) {
401 if (!lp->resizefs) {
403 "(%d extents)", lp->extents, lv->le_count);
406 lp->resize = LV_EXTEND; /* lets pretend zero size extension */
409 seg_size = lp->extents - lv->le_count;
413 lp->segtype = seg->segtype;
417 if (lp->segtype != arg_ptr_value(cmd, type_ARG, lp->segtype)) {
418 log_error("VolumeType does not match (%s)", lp->segtype->name);
423 if ((lp->extents > lv->le_count) &&
424 !(lp->stripes == 1 || (lp->stripes > 1 && lp->stripe_size))) {
433 !lp->stripe_size) ||
434 (seg_stripes && seg_stripes != str && !lp->stripes)) {
444 if (!lp->stripes)
445 lp->stripes = seg_stripes;
447 if (!lp->stripe_size && lp->stripes > 1) {
451 lp->stripe_size = seg_stripesize;
453 lp->stripe_size =
458 display_size(cmd, (uint64_t) lp->stripe_size));
464 if ((lp->extents > lv->le_count)) {
475 lp->mirrors = seg_mirrors;
478 (lp->mirrors != seg_mirrors)) {
485 if (lp->extents < lv->le_count) {
488 if (lp->stripes || lp->stripe_size || lp->mirrors)
505 if (lp->extents <= extents_used + seg_extents)
511 seg_size = lp->extents - extents_used;
512 lp->stripe_size = seg_stripesize;
513 lp->stripes = seg_stripes;
514 lp->mirrors = seg_mirrors;
517 if (lp->stripes > 1 && !lp->stripe_size) {
522 if ((lp->stripes > 1)) {
523 if (!(stripesize_extents = lp->stripe_size / vg->extent_size))
526 if ((size_rest = seg_size % (lp->stripes * stripesize_extents))) {
529 lp->extents, lp->extents - size_rest);
530 lp->extents = lp->extents - size_rest;
533 if (lp->stripe_size < STRIPE_SIZE_MIN) {
535 display_size(cmd, (uint64_t) lp->stripe_size));
540 if (lp->extents < lv->le_count) {
541 if (lp->resize == LV_EXTEND) {
544 lp->extents, lv->le_count);
547 lp->resize = LV_REDUCE;
548 } else if (lp->extents > lv->le_count) {
549 if (lp->resize == LV_REDUCE) {
551 "existing size (%d extents)", lp->extents,
555 lp->resize = LV_EXTEND;
559 if (lp->resize == LV_REDUCE) {
574 if ((lp->resize == LV_REDUCE) && lp->argc)
578 if ((lp->resizefs || (lp->resize == LV_REDUCE)) &&
579 !_request_confirmation(cmd, vg, lv, lp)) {
584 if (lp->resizefs) {
585 if (!lp->nofsck &&
586 !_fsadm_cmd(cmd, vg, lp, FSADM_CMD_CHECK)) {
591 if ((lp->resize == LV_REDUCE) &&
592 !_fsadm_cmd(cmd, vg, lp, FSADM_CMD_RESIZE)) {
604 (lp->resize == LV_REDUCE) ? "Reduc" : "Extend",
605 lp->lv_name,
606 display_size(cmd, (uint64_t) lp->extents * vg->extent_size));
608 if (lp->resize == LV_REDUCE) {
609 if (!lv_reduce(lv, lv->le_count - lp->extents)) {
613 } else if ((lp->extents > lv->le_count) && /* Ensure we extend */
614 !lv_extend(lv, lp->segtype, lp->stripes,
615 lp->stripe_size, lp->mirrors,
616 lp->extents - lv->le_count,
635 log_error("Failed to suspend %s", lp->lv_name);
649 log_error("Problem reactivating %s", lp->lv_name);
656 log_print("Logical volume %s successfully resized", lp->lv_name);
658 if (lp->resizefs && (lp->resize == LV_EXTEND) &&
659 !_fsadm_cmd(cmd, vg, lp, FSADM_CMD_RESIZE)) {
669 struct lvresize_params lp;
673 memset(&lp, 0, sizeof(lp));
675 if (!_lvresize_params(cmd, argc, argv, &lp))
678 log_verbose("Finding volume group %s", lp.vg_name);
679 vg = vg_read_for_update(cmd, lp.vg_name, NULL, 0);
686 if (!(r = _lvresize(cmd, vg, &lp)))
689 unlock_and_release_vg(cmd, vg, lp.vg_name);