]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/filed/backup.c
Merge branch 'master' into basejobv3
[bacula/bacula] / bacula / src / filed / backup.c
index ff83f4ac4c3d962111c036721c508b20e3c41e10..e92f880b4f7d7102f47ffd6629c70fbcfc3a51b6 100644 (file)
@@ -146,6 +146,7 @@ bool blast_data_to_storage_daemon(JCR *jcr, char *addr)
    }
    if (have_xattr) {
       jcr->xattr_data = get_pool_memory(PM_MESSAGE);
+      jcr->total_xattr_errors = 0;
    }
 
    /* Subroutine save_file() is called for each file */
@@ -158,8 +159,12 @@ bool blast_data_to_storage_daemon(JCR *jcr, char *addr)
       Jmsg(jcr, M_ERROR, 0, _("Encountered %ld acl errors while doing backup\n"),
            jcr->total_acl_errors);
    }
+   if (jcr->total_xattr_errors > 0) {
+      Jmsg(jcr, M_ERROR, 0, _("Encountered %ld xattr errors while doing backup\n"),
+           jcr->total_xattr_errors);
+   }
 
-   accurate_send_deleted_list(jcr);              /* send deleted list to SD  */
+   accurate_finish(jcr);              /* send deleted or base file list to SD */
 
    stop_heartbeat_monitor(jcr);
 
@@ -606,21 +611,21 @@ int save_file(JCR *jcr, FF_PKT *ff_pkt, bool top_level)
     */
    if (have_acl) {
       if (ff_pkt->flags & FO_ACL && ff_pkt->type != FT_LNK && !ff_pkt->cmd_plugin) {
-         switch (build_acl_streams(jcr, ff_pkt))
-            case bsub_exit_fatal:
-              goto bail_out;
-            case bsub_exit_nok:
-               /*
-                * Non-fatal errors, count them and when the number is under ACL_REPORT_ERR_MAX_PER_JOB
-                * print the error message set by the lower level routine in jcr->errmsg.
-                */
-               if (jcr->total_acl_errors < ACL_REPORT_ERR_MAX_PER_JOB) {
-                  Jmsg(jcr, M_ERROR, 0, "%s", jcr->errmsg);
-               }
-               jcr->total_acl_errors++;
-               break;
-            case bsub_exit_ok:
-               break;
+         switch (build_acl_streams(jcr, ff_pkt)) {
+         case bacl_exit_fatal:
+            goto bail_out;
+         case bacl_exit_error:
+            /*
+             * Non-fatal errors, count them and when the number is under ACL_REPORT_ERR_MAX_PER_JOB
+             * print the error message set by the lower level routine in jcr->errmsg.
+             */
+            if (jcr->total_acl_errors < ACL_REPORT_ERR_MAX_PER_JOB) {
+               Jmsg(jcr, M_ERROR, 0, "%s", jcr->errmsg);
+            }
+            jcr->total_acl_errors++;
+            break;
+         case bacl_exit_ok:
+            break;
          }
       }
    }
@@ -630,8 +635,22 @@ int save_file(JCR *jcr, FF_PKT *ff_pkt, bool top_level)
     */
    if (have_xattr) {
       if (ff_pkt->flags & FO_XATTR && !ff_pkt->cmd_plugin) {
-         if (build_xattr_streams(jcr, ff_pkt) == bsub_exit_fatal)
+         switch (build_xattr_streams(jcr, ff_pkt)) {
+         case bxattr_exit_fatal:
             goto bail_out;
+         case bxattr_exit_error:
+            /*
+             * Non-fatal errors, count them and when the number is under XATTR_REPORT_ERR_MAX_PER_JOB
+             * print the error message set by the lower level routine in jcr->errmsg.
+             */
+            if (jcr->total_xattr_errors < XATTR_REPORT_ERR_MAX_PER_JOB) {
+               Jmsg(jcr, M_ERROR, 0, "%s", jcr->errmsg);
+            }
+            jcr->total_xattr_errors++;
+            break;
+         case bxattr_exit_ok:
+            break;
+         }
       }
    }