]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/dird/ua_prune.c
kes Close bat console windows first to eliminate error message
[bacula/bacula] / bacula / src / dird / ua_prune.c
index 2c764d7679aba2d1be8d7474e82e52f22059c285..6592ac8fad75eb042e82572c690da61e722ad105 100644 (file)
@@ -7,8 +7,8 @@
    many others, a complete list can be found in the file AUTHORS.
    This program is Free Software; you can redistribute it and/or
    modify it under the terms of version two of the GNU General Public
-   License as published by the Free Software Foundation plus additions
-   that are listed in the file LICENSE.
+   License as published by the Free Software Foundation and included
+   in the file LICENSE.
 
    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -394,7 +394,7 @@ bool prune_volume(UAContext *ua, MEDIA_DBR *mr)
    }
 
    memset(&del, 0, sizeof(del));
-   del.max_ids = 1000;
+   del.max_ids = 10000;
    del.JobId = (JobId_t *)malloc(sizeof(JobId_t) * del.max_ids);
 
    db_lock(ua->db);
@@ -455,10 +455,18 @@ int get_prune_list_for_volume(UAContext *ua, MEDIA_DBR *mr, del_ctx *del)
       goto bail_out;
    }
 
+   /* Do not prune any job currently running */
    for (i=0; i < del->num_ids; i++) {
-      if (ua->jcr->JobId == del->JobId[i]) {
-         Dmsg2(150, "skip same job JobId[%d]=%d\n", i, (int)del->JobId[i]);
-         del->JobId[i] = 0;
+      skip = false;
+      foreach_jcr(jcr) {
+         if (jcr->JobId == del->JobId[i]) {
+            Dmsg2(150, "skip same job JobId[%d]=%d\n", i, (int)del->JobId[i]);
+            del->JobId[i] = 0;
+            skip = true;
+            break;
+         }
+      }
+      if (skip) {
          continue;
       }
       Dmsg2(150, "accept JobId[%d]=%d\n", i, (int)del->JobId[i]);