X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fstored%2Fstored.c;h=36ae297f397233add3cce53abebfeda2adcb3a6c;hb=bdcddd32cafd978761406b7ad3ca006597c8f1d7;hp=d878330cfb44ee5b145125442fdb39c394fc3545;hpb=04b0f420de94bf142a6511103be1c0c998a2a463;p=bacula%2Fbacula diff --git a/bacula/src/stored/stored.c b/bacula/src/stored/stored.c index d878330cfb..36ae297f39 100644 --- a/bacula/src/stored/stored.c +++ b/bacula/src/stored/stored.c @@ -1,7 +1,7 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2000-2007 Free Software Foundation Europe e.V. + Copyright (C) 2000-2008 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. @@ -445,6 +445,7 @@ static int check_resources() static void cleanup_old_files() { POOLMEM *cleanup = get_pool_memory(PM_MESSAGE); + POOLMEM *results = get_pool_memory(PM_MESSAGE); int len = strlen(me->working_directory); #if defined(HAVE_WIN32) pm_strcpy(cleanup, "del /q "); @@ -457,8 +458,9 @@ static void cleanup_old_files() } pm_strcat(cleanup, my_name); pm_strcat(cleanup, "*.spool"); - run_program(cleanup, 0, NULL); + run_program(cleanup, 0, results); free_pool_memory(cleanup); + free_pool_memory(results); } @@ -515,6 +517,7 @@ void *device_initialization(void *arg) switch (read_dev_volume_label(dcr)) { case VOL_OK: memcpy(&dev->VolCatInfo, &dcr->VolCatInfo, sizeof(dev->VolCatInfo)); + volume_unused(dcr); /* mark volume "released" */ break; default: Jmsg1(NULL, M_WARNING, 0, _("Could not mount device %s\n"), dev->print_name()); @@ -550,6 +553,7 @@ void terminate_stored(int sig) exit(1); } in_here = true; + debug_level = 0; /* turn off any debug */ stop_watchdog(); if (sig == SIGTERM) { /* normal shutdown request? */ @@ -593,6 +597,8 @@ void terminate_stored(int sig) Dmsg1(200, "In terminate_stored() sig=%d\n", sig); + free_volume_list(); + foreach_res(device, R_DEVICE) { Dmsg1(10, "Term device %s\n", device->device_name); if (device->dev) { @@ -615,7 +621,6 @@ void terminate_stored(int sig) } term_msg(); cleanup_crypto(); - free_volume_list(); term_reservations_lock(); close_memory_pool();