Automatically exclude the snapshot .snapraid directory and content files

This commit is contained in:
Andrea Mazzoleni 2026-05-11 23:24:36 +02:00
parent 37ff42a1c2
commit ea470341aa
10 changed files with 111 additions and 22 deletions

View file

@ -1329,9 +1329,11 @@ static int scan_sub(struct snapraid_scan* scan, int level, int is_diff, char* pa
DIR* d;
tommy_list list;
tommy_node* node;
size_t mount_point_len;
size_t path_len;
size_t sub_len;
mount_point_len = strlen(disk->mount_point);
path_len = strlen(path_next);
sub_len = strlen(sub_next);
@ -1404,11 +1406,17 @@ static int scan_sub(struct snapraid_scan* scan, int level, int is_diff, char* pa
}
/* exclude content files even before calling lstat() */
if (filter_content(&state->contentlist, path_next) != 0) {
if (filter_content(&state->contentlist, disk->mount_point, mount_point_len, sub_next, sub_len, name) != 0) {
msg_verbose("Excluding content '%s'\n", path_next);
continue;
}
/* exclude snapshot container even before calling lstat() */
if (filter_snapshot(sub_next, name) != 0) {
msg_verbose("Excluding snapshots directory '%s'\n", path_next);
continue;
}
name_len = strlen(dd->d_name);
entry = malloc_nofail(sizeof(struct dirent_sorted) + name_len + 1);