]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/stored/butil.c
kes Make sure valid argument passed to str_to_utime() where Arno
[bacula/bacula] / bacula / src / stored / butil.c
index 92923e03e647be89fc41b00e5ed90f8767928265..43a8088a8f909425cd9c8dacddb39afc687db04c 100644 (file)
@@ -12,7 +12,7 @@
  *   Version $Id$
  */
 /*
-   Copyright (C) 2000-2005 Kern Sibbald
+   Copyright (C) 2000-2006 Kern Sibbald
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
@@ -93,6 +93,7 @@ JCR *setup_jcr(const char *name, char *dev_name, BSR *bsr,
    pm_strcpy(jcr->fileset_md5, "Dummy.fileset.md5");
 
    init_autochangers();
+   create_volume_list();
 
    dcr = setup_to_access_device(jcr, dev_name, VolumeName, mode);
    if (!dcr) {
@@ -120,6 +121,8 @@ static DCR *setup_to_access_device(JCR *jcr, char *dev_name,
    DCR *dcr;
    char VolName[MAX_NAME_LENGTH];
 
+   init_reservations_lock();
+
    /*
     * If no volume name already given and no bsr, and it is a file,
     * try getting name from Filename
@@ -159,6 +162,7 @@ static DCR *setup_to_access_device(JCR *jcr, char *dev_name,
    }
    device->dev = dev;
    dcr = new_dcr(jcr, dev);
+   jcr->dcr = dcr;
    if (VolName[0]) {
       bstrncpy(dcr->VolumeName, VolName, sizeof(dcr->VolumeName));
    }
@@ -171,11 +175,13 @@ static DCR *setup_to_access_device(JCR *jcr, char *dev_name,
       if (!acquire_device_for_read(dcr)) {
          return NULL;
       }
+      jcr->read_dcr = dcr;
    } else {
       if (!first_open_device(dcr)) {
          Jmsg1(jcr, M_FATAL, 0, _("Cannot open %s\n"), dev->print_name());
          return NULL;
       }
+      jcr->dcr = dcr;        /* write dcr */
    }
    return dcr;
 }