]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/filed/fd_plugins.c
Pass Delta Sequence to save_pkt and restore_pkt
[bacula/bacula] / bacula / src / filed / fd_plugins.c
index 467cea104e17171b4757df8a8da363d5081e5677..804019e9f21f6a251814211fe9fdef9cd3adf060 100644 (file)
@@ -396,10 +396,13 @@ int plugin_save(JCR *jcr, FF_PKT *ff_pkt, bool top_level)
             pm_strcpy(link, sp.link);
             ff_pkt->fname = fname.c_str();
             ff_pkt->link = link.c_str();
+            ff_pkt->delta_seq = sp.delta_seq;
             if (sp.flags & FO_DELTA) {
                ff_pkt->flags |= FO_DELTA;
+               ff_pkt->delta_seq++;          /* make new delta sequence number */
             } else {
-               ff_pkt->flags &= ~FO_DELTA;
+               ff_pkt->flags &= ~FO_DELTA;   /* clean delta sequence number */
+               ff_pkt->delta_seq = 0;
             }
          }
 
@@ -1337,6 +1340,11 @@ static bRC baculaCheckChanges(bpContext *ctx, struct save_pkt *sp)
       ret = bRC_Seen;
    }
 
+   /* check_changes() can update delta sequence number, return it to the
+    * plugin 
+    */
+   sp->delta_seq = ff_pkt->delta_seq;
+
 bail_out:
    Dmsg1(100, "checkChanges=%i\n", ret);
    return ret;