]> git.sur5r.net Git - bacula/bacula/commitdiff
Insert Delta in bootstrap by JobTDate
authorEric Bollengier <eric@eb.homelinux.org>
Sun, 21 Nov 2010 15:04:35 +0000 (16:04 +0100)
committerEric Bollengier <eric@eb.homelinux.org>
Thu, 25 Nov 2010 13:59:33 +0000 (14:59 +0100)
bacula/src/dird/ua_restore.c

index 73df8ca22ab6b6b446fcffc9360a9639394ab1b7..a02ff7f0e7e8abaa835ed8deda81a2be2e7fc483 100644 (file)
@@ -1067,14 +1067,20 @@ static bool ask_for_fileregex(UAContext *ua, RESTORE_CTX *rx)
 }
 
 /* Walk on the delta_list of a TREE_NODE item and insert all parts
- * TODO: Optimize for bootstrap creation 
+ * TODO: Optimize for bootstrap creation, remove recursion
+ * 6 -> 5 -> 4 -> 3 -> 2 -> 1 -> 0
+ * should insert as
+ * 0, 1, 2, 3, 4, 5, 6
  */
 static void add_delta_list_findex(RESTORE_CTX *rx, struct delta_list *lst)
 {
-   while (lst != NULL) {
-      add_findex(rx->bsr, lst->JobId, lst->FileIndex);
-      lst = lst->next;
+   if (lst == NULL) {
+      return;
+   }
+   if (lst->next) {
+      add_delta_list_findex(rx, lst->next);
    }
+   add_findex(rx->bsr, lst->JobId, lst->FileIndex);
 }
 
 static bool build_directory_tree(UAContext *ua, RESTORE_CTX *rx)