]> git.sur5r.net Git - bacula/bacula/commitdiff
Fix fast block rejection
authorKern Sibbald <kern@sibbald.com>
Thu, 9 Oct 2003 15:07:22 +0000 (15:07 +0000)
committerKern Sibbald <kern@sibbald.com>
Thu, 9 Oct 2003 15:07:22 +0000 (15:07 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@739 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/dird/dird.c
bacula/src/stored/match_bsr.c
bacula/src/stored/parse_bsr.c
bacula/src/stored/read_record.c

index eb0a4758ecf612b5e77c7990d39522f240010132..410cbb5d36c06e941f3cbb674f4561b702925533 100644 (file)
@@ -241,7 +241,7 @@ static void terminate_dird(int sig)
    delete_pid_file(director->pid_directory, "bacula-dir",  
                   director->DIRport);
    stop_watchdog();
-   signal(SIGCHLD, SIG_IGN);          /* don't worry about children now */
+// signal(SIGCHLD, SIG_IGN);          /* don't worry about children now */
    term_scheduler();
    if (runjob) {
       free(runjob);
index 1aaef0e7552ac50a5524d343bacae2aedf05877f..1098527c6b7ad437e4b68b8b575ba9d694024edd 100755 (executable)
@@ -77,10 +77,16 @@ int match_bsr_block(BSR *bsr, DEV_BLOCK *block)
       return 1;                      /* cannot fast reject */
    }
 
-   if (!match_block_sesstime(bsr, bsr->sesstime, block)) {
-      return 0;
+   for ( ; bsr; bsr=bsr->next) {
+      if (!match_block_sesstime(bsr, bsr->sesstime, block)) {
+        continue;
+      }
+      if (!match_block_sessid(bsr, bsr->sessid, block)) {
+        continue;
+      }
+      return 1;
    }
-   return match_block_sessid(bsr, bsr->sessid, block);
+   return 0;
 }
 
 static int match_block_sesstime(BSR *bsr, BSR_SESSTIME *sesstime, DEV_BLOCK *block)
index 83343dcb7a19c5b1ed118572f2ab7c6c6f1863a5..7805c1c9d9685428e5f77bb8b7607b4fdc0d1372 100755 (executable)
@@ -713,9 +713,12 @@ void dump_bsr(BSR *bsr, bool recurse)
    }
    if (bsr->count) {
       Dmsg1(-1, "count       : %u\n", bsr->count);
+      Dmsg1(-1, "found       : %u\n", bsr->found);
    }
+
    Dmsg1(-1,    "done        : %s\n", bsr->done?"yes":"no");
    Dmsg1(-1,    "positioning : %d\n", bsr->use_positioning);
+   Dmsg1(-1,    "fast_reject : %d\n", bsr->use_fast_rejection);
    if (recurse && bsr->next) {
       Dmsg0(-1, "\n");
       dump_bsr(bsr->next, true);
index 7a8b3c26a472d89d98d1ec8632013896d17c376f..6b9a177d87e34ec0878effd360660b2623b02739 100644 (file)
@@ -158,7 +158,7 @@ int read_records(JCR *jcr,  DEVICE *dev,
       Dmsg1(100, "Block empty %d\n", is_block_empty(rec));
       for (rec->state=0; !is_block_empty(rec); ) {
         if (!read_record_from_block(block, rec)) {
-            Dmsg3(00, "!read-break. state=%s blk=%d rem=%d\n", rec_state_to_str(rec), 
+            Dmsg3(100, "!read-break. state=%s blk=%d rem=%d\n", rec_state_to_str(rec), 
                  block->BlockNumber, rec->remainder);
            break;
         }