X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fstored%2Flabel.c;h=236cc70067618f58169f55a32e5c4f80cfc2b70e;hb=f22306c4aa11062bf4fad4eb09b7c88c045efe66;hp=f205dcd3cbee8131b60ce616582807a3ccd82c32;hpb=86da6147f63b29cb85d51620b55bae7266f1c890;p=bacula%2Fbacula diff --git a/bacula/src/stored/label.c b/bacula/src/stored/label.c index f205dcd3cb..236cc70067 100644 --- a/bacula/src/stored/label.c +++ b/bacula/src/stored/label.c @@ -279,7 +279,9 @@ int DEVICE::read_dev_volume_label(DCR *dcr) goto bail_out; } - empty_block(block); + if (dcr->is_writing()) { + empty_block(block); + } Leave(dbglvl); return VOL_OK; @@ -400,25 +402,27 @@ bool DEVICE::write_volume_label(DCR *dcr, const char *VolName, goto bail_out; } - /* Not aligned data */ - if (dev->weof(dcr, 1)) { - dev->set_labeled(); - } + if (!dev->is_aligned()) { + /* Not aligned data */ + if (dev->weof(dcr, 1)) { + dev->set_labeled(); + } - if (chk_dbglvl(100)) { - dev->dump_volume_label(); - } - Dmsg0(50, "Call reserve_volume\n"); - /**** ***FIXME*** if dev changes, dcr must be updated */ - if (reserve_volume(dcr, VolName) == NULL) { - if (!dcr->jcr->errmsg[0]) { - Mmsg3(dcr->jcr->errmsg, _("Could not reserve volume %s on %s device %s\n"), - dev->VolHdr.VolumeName, dev->print_type(), dev->print_name()); + if (chk_dbglvl(100)) { + dev->dump_volume_label(); } - Dmsg1(50, "%s", dcr->jcr->errmsg); - goto bail_out; + Dmsg0(50, "Call reserve_volume\n"); + /**** ***FIXME*** if dev changes, dcr must be updated */ + if (reserve_volume(dcr, VolName) == NULL) { + if (!dcr->jcr->errmsg[0]) { + Mmsg3(dcr->jcr->errmsg, _("Could not reserve volume %s on %s device %s\n"), + dev->VolHdr.VolumeName, dev->print_type(), dev->print_name()); + } + Dmsg1(50, "%s", dcr->jcr->errmsg); + goto bail_out; + } + dev = dcr->dev; /* may have changed in reserve_volume */ } - dev = dcr->dev; /* may have changed in reserve_volume */ dev->clear_append(); /* remove append since this is PRE_LABEL */ Leave(100); return true;