}
STRV_FOREACH(e, override_exclude_src ?: p->exclude_files_source) {
+ if (path_startswith(source, *e))
+ return 1;
+
r = add_exclude_path(*e, &denylist, endswith(*e, "/") ? DENY_CONTENTS : DENY_INODE);
if (r < 0)
return r;
STRV_FOREACH(e, override_exclude_tgt ?: p->exclude_files_target) {
_cleanup_free_ char *path = NULL;
+ if (path_startswith(target, *e))
+ return 1;
+
const char *s = path_startswith(*e, target);
if (!s)
continue;
r = make_copy_files_denylist(context, p, *source, *target, &denylist);
if (r < 0)
return r;
+ if (r > 0)
+ continue;
r = make_subvolumes_set(p, *source, *target, &subvolumes_by_source_inode);
if (r < 0)