]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/stored/block.c
dhb left console.cpp uncompileable. Modified a comment in mainwin.cpp
[bacula/bacula] / bacula / src / stored / block.c
index c567fe3742a1fcd406715afc75ea1e133759d299..a05b9c46cde937c13d400d3aaebb5145196de416 100644 (file)
@@ -11,7 +11,7 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2001-2006 Free Software Foundation Europe e.V.
+   Copyright (C) 2001-2007 Free Software Foundation Europe e.V.
 
    The main author of Bacula is Kern Sibbald, with contributions from
    many others, a complete list can be found in the file AUTHORS.
@@ -537,11 +537,8 @@ bool write_block_to_dev(DCR *dcr)
          bmicrosleep(5, 0);    /* pause a bit if busy or lots of errors */
          dev->clrerror(-1);
       }
-      if (dev->is_tape()) {
-         stat = tape_write(dev->fd, block->buf, (size_t)wlen);
-      } else {
-         stat = write(dev->fd, block->buf, (size_t)wlen);
-      }
+      stat = dev->write(block->buf, (size_t)wlen);
+
    } while (stat == -1 && (errno == EBUSY || errno == EIO) && retry++ < 3);
 
 #ifdef DEBUG_BLOCK_ZEROING
@@ -577,7 +574,7 @@ bool write_block_to_dev(DCR *dcr)
             dev->file, dev->block_num, dev->print_name(), wlen, stat);
       }
       Dmsg7(100, "=== Write error. fd=%d size=%u rtn=%d dev_blk=%d blk_blk=%d errno=%d: ERR=%s\n",
-         dev->fd, wlen, stat, dev->block_num, block->BlockNumber, 
+         dev->fd(), wlen, stat, dev->block_num, block->BlockNumber, 
          dev->dev_errno, strerror(dev->dev_errno));
 
       ok = terminate_writing_volume(dcr);
@@ -729,7 +726,6 @@ static bool terminate_writing_volume(DCR *dcr)
    }
    bstrncpy(dev->VolCatInfo.VolCatStatus, "Full", sizeof(dev->VolCatInfo.VolCatStatus));
    dev->VolCatInfo.VolCatFiles = dev->file;   /* set number of files */
-   dev->VolCatInfo.VolCatJobs++;              /* increment number of jobs */
    
    if (dev->is_dvd()) {
       if (!dvd_write_part(dcr)) {             /* write last part */
@@ -787,11 +783,11 @@ static bool do_new_file_bookkeeping(DCR *dcr)
    if (!dir_create_jobmedia_record(dcr)) {
       Dmsg0(190, "Error from create_job_media.\n");
       dev->dev_errno = EIO;
-       Jmsg(jcr, M_FATAL, 0, _("Could not create JobMedia record for Volume=\"%s\" Job=%s\n"),
-            dcr->VolCatInfo.VolCatName, jcr->Job);
-       terminate_writing_volume(dcr);
-       dev->dev_errno = EIO;
-       return false;
+      Jmsg(jcr, M_FATAL, 0, _("Could not create JobMedia record for Volume=\"%s\" Job=%s\n"),
+           dcr->VolCatInfo.VolCatName, jcr->Job);
+      terminate_writing_volume(dcr);
+      dev->dev_errno = EIO;
+      return false;
    }
    dev->VolCatInfo.VolCatFiles = dev->file;
    if (!dir_update_volume_info(dcr, false)) {
@@ -945,7 +941,7 @@ reread:
    if (dev->at_eof() && dev->is_dvd()) {
       Dmsg1(100, "file_size=%u\n",(unsigned int)dev->file_size);
       Dmsg1(100, "file_addr=%u\n",(unsigned int)dev->file_addr);
-      Dmsg1(100, "lseek=%u\n",(unsigned int)lseek(dev->fd, 0, SEEK_CUR));
+      Dmsg1(100, "lseek=%u\n",(unsigned int)lseek(dev->fd(), 0, SEEK_CUR));
       Dmsg1(100, "part_start=%u\n",(unsigned int)dev->part_start);
       Dmsg1(100, "part_size=%u\n", (unsigned int)dev->part_size);
       Dmsg2(100, "part=%u num_dvd_parts=%u\n", dev->part, dev->num_dvd_parts);
@@ -979,11 +975,8 @@ reread:
          bmicrosleep(10, 0);    /* pause a bit if busy or lots of errors */
          dev->clrerror(-1);
       }
-      if (dev->is_tape()) {
-         stat = tape_read(dev->fd, block->buf, (size_t)block->buf_len);
-      } else {
-         stat = read(dev->fd, block->buf, (size_t)block->buf_len);
-      }
+      stat = dev->read(block->buf, (size_t)block->buf_len);
+
    } while (stat == -1 && (errno == EBUSY || errno == EINTR || errno == EIO) && retry++ < 3);
    if (stat < 0) {
       berrno be;
@@ -991,7 +984,7 @@ reread:
       Dmsg1(200, "Read device got: ERR=%s\n", be.strerror());
       block->read_len = 0;
       Mmsg5(dev->errmsg, _("Read error on fd=%d at file:blk %u:%u on device %s. ERR=%s.\n"),
-         dev->fd, dev->file, dev->block_num, dev->print_name(), be.strerror());
+         dev->fd(), dev->file, dev->block_num, dev->print_name(), be.strerror());
       Jmsg(jcr, M_ERROR, 0, "%s", dev->errmsg);
       if (dev->at_eof()) {        /* EOF just seen? */
          dev->set_eot();          /* yes, error => EOT */