]> git.sur5r.net Git - bacula/bacula/commitdiff
kes Fix ANSI tape labeling. This fixes bug #954.
authorKern Sibbald <kern@sibbald.com>
Thu, 20 Sep 2007 13:00:11 +0000 (13:00 +0000)
committerKern Sibbald <kern@sibbald.com>
Thu, 20 Sep 2007 13:00:11 +0000 (13:00 +0000)
kes  Increase the max block size to 4MB fixes bug #957.

git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@5608 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/stored/dev.c
bacula/src/stored/label.c
bacula/technotes-2.3

index d858e387c528c93579c065fcc234f69c8e8e8b4d..6a5eb392eca36ca0f45c4a74accf65fef0f89440 100644 (file)
@@ -109,6 +109,7 @@ init_dev(JCR *jcr, DEVRES *device)
    int errstat;
    DCR *dcr = NULL;
    DEVICE *dev;
+   uint32_t max_bs;
 
 
    /* If no device type specified, try to guess */
@@ -199,7 +200,17 @@ init_dev(JCR *jcr, DEVRES *device)
       }
    }
 
-   if (dev->max_block_size > 1000000) {
+   /* Sanity check */
+   if (dev->max_block_size == 0) {
+      max_bs = DEFAULT_BLOCK_SIZE;
+   } else {
+      max_bs = dev->max_block_size;
+   }
+   if (dev->min_block_size > max_bs) {
+      Jmsg(jcr, M_ERROR_TERM, 0, _("Min block size > max on device %s\n"), 
+           dev->print_name());
+   }
+   if (dev->max_block_size > 4096000) {
       Jmsg3(jcr, M_ERROR, 0, _("Block size %u on device %s is too large, using default %u\n"),
          dev->max_block_size, dev->print_name(), DEFAULT_BLOCK_SIZE);
       dev->max_block_size = 0;
index 19ca8badcdc1a868c3d4583c8f157f6b83ea83e4..089da8ebbe5713e4224f5794fd5bcdd521b67d88 100644 (file)
@@ -344,6 +344,9 @@ bool write_new_volume_label_to_dev(DCR *dcr, const char *VolName,
       }
    }
 
+   /* Temporarily mark in append state to enable writing */
+   dev->set_append();
+
    /* Create PRE_LABEL or VOL_LABEL if DVD */
    create_volume_label(dev, VolName, PoolName, dvdnow);
 
@@ -364,8 +367,6 @@ bool write_new_volume_label_to_dev(DCR *dcr, const char *VolName,
    create_volume_label_record(dcr, dcr->rec);
    dcr->rec->Stream = 0;
 
-   /* Temporarily mark in append state to enable writing */
-   dev->set_append();
    if (!write_record_to_block(dcr->block, dcr->rec)) {
       Dmsg2(130, "Bad Label write on %s: ERR=%s\n", dev->print_name(), dev->print_errmsg());
       goto bail_out;
index febe9b21accb5bbe6b3f8bb3634cb8f730a4a876..30b0d05ea1bb287462b4c37cfdab922ab690a6b6 100644 (file)
@@ -1,7 +1,10 @@
               Technical notes on version 2.3
 
 General:
-0Sep07
+20Sep07
+kes  Fix ANSI tape labeling.  This fixes bug #954.
+kes  Increase the max block size to 4MB fixes bug #957.
+kes  ERABT if user sets min block size > max block size.  Fixes bug #956.
 kes  Apply 2.2.4-poll-mount fix, that resolves bug #908 where a tape
      is not properly mounted (recognized) during a poll.
 kes  Apply 2.2.4-verify patch that resolves bug #958.  A Verify catalog