int pvcreate(struct cmd_context *cmd, int argc, char **argv) { int i; int ret = ECMD_PROCESSED; struct pvcreate_params pp; pvcreate_params_set_defaults(&pp); if (!pvcreate_restore_params_validate(cmd, argc, argv, &pp)) { return EINVALID_CMD_LINE; } if (!pvcreate_params_validate(cmd, argc, &pp)) { return EINVALID_CMD_LINE; } for (i = 0; i < argc; i++) { if (sigint_caught()) return_ECMD_FAILED; dm_unescape_colons_and_at_signs(argv[i], NULL, NULL); if (!pvcreate_single(cmd, argv[i], &pp)) ret = ECMD_FAILED; } return ret; }
int pvcreate(struct cmd_context *cmd, int argc, char **argv) { int i; int ret = ECMD_PROCESSED; struct pvcreate_params pp; struct physical_volume *pv; pvcreate_params_set_defaults(&pp); if (!pvcreate_restore_params_validate(cmd, argc, argv, &pp)) { return EINVALID_CMD_LINE; } if (!pvcreate_params_validate(cmd, argc, argv, &pp)) { return EINVALID_CMD_LINE; } for (i = 0; i < argc; i++) { if (!lock_vol(cmd, VG_ORPHANS, LCK_VG_WRITE)) { log_error("Can't get lock for orphan PVs"); return ECMD_FAILED; } dm_unescape_colons_and_at_signs(argv[i], NULL, NULL); if (!(pv = pvcreate_single(cmd, argv[i], &pp, 1))) { stack; ret = ECMD_FAILED; } unlock_vg(cmd, VG_ORPHANS); if (sigint_caught()) return ret; } return ret; }
int pvcreate(struct cmd_context *cmd, int argc, char **argv) { int i, r; int ret = ECMD_PROCESSED; struct pvcreate_params pp; if (!argc) { log_error("Please enter a physical volume path"); return EINVALID_CMD_LINE; } if (arg_count(cmd, restorefile_ARG) && !arg_count(cmd, uuidstr_ARG)) { log_error("--uuid is required with --restorefile"); return EINVALID_CMD_LINE; } if (arg_count(cmd, uuidstr_ARG) && argc != 1) { log_error("Can only set uuid on one volume at once"); return EINVALID_CMD_LINE; } if (arg_count(cmd, yes_ARG) && !arg_count(cmd, force_ARG)) { log_error("Option y can only be given with option f"); return EINVALID_CMD_LINE; } if (arg_int_value(cmd, labelsector_ARG, 0) >= LABEL_SCAN_SECTORS) { log_error("labelsector must be less than %lu", LABEL_SCAN_SECTORS); return EINVALID_CMD_LINE; } if (!(cmd->fmt->features & FMT_MDAS) && (arg_count(cmd, metadatacopies_ARG) || arg_count(cmd, metadatasize_ARG))) { log_error("Metadata parameters only apply to text format"); return EINVALID_CMD_LINE; } if (arg_count(cmd, metadatacopies_ARG) && arg_int_value(cmd, metadatacopies_ARG, -1) > 2) { log_error("Metadatacopies may only be 0, 1 or 2"); return EINVALID_CMD_LINE; } if (arg_count(cmd, zero_ARG)) pp.zero = strcmp(arg_str_value(cmd, zero_ARG, "y"), "n"); else if (arg_count(cmd, restorefile_ARG) || arg_count(cmd, uuidstr_ARG)) pp.zero = 0; else pp.zero = 1; for (i = 0; i < argc; i++) { r = pvcreate_single(cmd, argv[i], &pp); if (r > ret) ret = r; if (sigint_caught()) return ret; } return ret; }