summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Rajnoha <prajnoha@redhat.com>2015-03-12 15:18:52 +0100
committerPeter Rajnoha <prajnoha@redhat.com>2016-02-15 12:44:46 +0100
commitb6e3080fff7f101f2bbec21a7757e54e6026d61d (patch)
treedfe243f860c744d8c11a27366af758995d8ed7a1
parent73f1d444c8fccf7f0c95d09ff4b2a6c9f0e40e02 (diff)
downloadlvm2-b6e3080fff7f101f2bbec21a7757e54e6026d61d.tar.gz
pv: _pvcreate_write: do label removal and zeroing only if creating a new PV
-rw-r--r--lib/metadata/metadata.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c
index 90643fa5c..7af545a11 100644
--- a/lib/metadata/metadata.c
+++ b/lib/metadata/metadata.c
@@ -1637,32 +1637,33 @@ void pvcreate_params_set_defaults(struct pvcreate_params *pp)
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 device *dev = pv->dev;
const char *pv_name = dev_name(dev);
- /* Wipe existing label first */
- if (!label_remove(pv_dev(pv))) {
- log_error("Failed to wipe existing label on %s", pv_name);
- return 0;
- }
-
- if (zero) {
- log_verbose("Zeroing start of device %s", pv_name);
- if (!dev_open_quiet(dev)) {
- log_error("%s not opened: device not zeroed", pv_name);
+ if (pvw->new_pv) {
+ /* Wipe existing label first */
+ if (!label_remove(pv_dev(pv))) {
+ log_error("Failed to wipe existing label on %s", pv_name);
return 0;
}
- if (!dev_set(dev, UINT64_C(0), (size_t) 2048, 0)) {
- log_error("%s not wiped: aborting", pv_name);
+ if (pvw->pp->zero) {
+ log_verbose("Zeroing start of device %s", pv_name);
+ if (!dev_open_quiet(dev)) {
+ log_error("%s not opened: device not zeroed", pv_name);
+ return 0;
+ }
+
+ if (!dev_set(dev, UINT64_C(0), (size_t) 2048, 0)) {
+ log_error("%s not wiped: aborting", pv_name);
+ if (!dev_close(dev))
+ stack;
+ return 0;
+ }
if (!dev_close(dev))
stack;
- return 0;
}
- if (!dev_close(dev))
- stack;
}
log_verbose("Writing physical volume data to disk \"%s\"",