]> wimlib.net Git - wimlib/blobdiff - src/win32_capture.c
Add WIMLIB_ERR_FVE_LOCKED_VOLUME
[wimlib] / src / win32_capture.c
index ad40d45287af5828cf6528e6f3cf77e2e39b8139..8cf32efdef5b6fd167eed759c5455f906299132b 100644 (file)
@@ -1097,10 +1097,11 @@ winnt_build_dentry_tree_recursive(struct wim_dentry **root_ret,
        u16 rpbuflen;
        u16 not_rpfixed;
 
-       if (should_exclude_path(full_path + params->capture_root_nchars,
-                               full_path_nchars - params->capture_root_nchars,
-                               params->config))
+       ret = try_exclude(full_path, full_path_nchars, params);
+       if (ret < 0) /* Excluded? */
                goto out_progress;
+       if (ret > 0) /* Error? */
+               goto out;
 
        /* Open the file.  */
        status = winnt_openat(cur_dir,
@@ -1122,7 +1123,10 @@ winnt_build_dentry_tree_recursive(struct wim_dentry **root_ret,
                        ERROR_WITH_ERRNO("\"%ls\": Can't open file "
                                         "(status=0x%08"PRIx32")",
                                         printable_path(full_path), (u32)status);
-                       ret = WIMLIB_ERR_OPEN;
+                       if (status == STATUS_FVE_LOCKED_VOLUME)
+                               ret = WIMLIB_ERR_FVE_LOCKED_VOLUME;
+                       else
+                               ret = WIMLIB_ERR_OPEN;
                }
                /* XXX: Provide option to exclude files that fail with
                 * STATUS_SHARING_VIOLATION?  */