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:
parent
73f1d444c8
commit
b6e3080fff
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user