1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00

pv: _pvcreate_write: do label removal and zeroing only if creating a new PV

This commit is contained in:
Peter Rajnoha 2015-03-12 15:18:52 +01:00
parent 73f1d444c8
commit b6e3080fff

View File

@ -1637,18 +1637,18 @@ void pvcreate_params_set_defaults(struct pvcreate_params *pp)
static int _pvcreate_write(struct cmd_context *cmd, struct pv_to_write *pvw) static int _pvcreate_write(struct cmd_context *cmd, struct pv_to_write *pvw)
{ {
int zero = pvw->pp ? pvw->pp->zero : 1;
struct physical_volume *pv = pvw->pv; struct physical_volume *pv = pvw->pv;
struct device *dev = pv->dev; struct device *dev = pv->dev;
const char *pv_name = dev_name(dev); const char *pv_name = dev_name(dev);
if (pvw->new_pv) {
/* Wipe existing label first */ /* Wipe existing label first */
if (!label_remove(pv_dev(pv))) { if (!label_remove(pv_dev(pv))) {
log_error("Failed to wipe existing label on %s", pv_name); log_error("Failed to wipe existing label on %s", pv_name);
return 0; return 0;
} }
if (zero) { if (pvw->pp->zero) {
log_verbose("Zeroing start of device %s", pv_name); log_verbose("Zeroing start of device %s", pv_name);
if (!dev_open_quiet(dev)) { if (!dev_open_quiet(dev)) {
log_error("%s not opened: device not zeroed", pv_name); log_error("%s not opened: device not zeroed", pv_name);
@ -1664,6 +1664,7 @@ static int _pvcreate_write(struct cmd_context *cmd, struct pv_to_write *pvw)
if (!dev_close(dev)) if (!dev_close(dev))
stack; stack;
} }
}
log_verbose("Writing physical volume data to disk \"%s\"", log_verbose("Writing physical volume data to disk \"%s\"",
pv_name); pv_name);