1
1
mirror of http://git.sesse.net/plocate synced 2025-10-05 23:42:49 +02:00

Revert "In updatedb, check prunepaths _before_ opening the directory."

This reverts commit 6e7991e5e0.

David Caldwell pointed out that this breaks prunepaths that are not
directly on the root, since we now get /b before /a/a and this breaks
the expectation that the prunepaths list is iterated through in order.
This commit is contained in:
Steinar H. Gunderson
2024-01-12 16:15:22 +01:00
parent 4696bbc488
commit a03412e91a

View File

@@ -522,6 +522,13 @@ string ExistingDB::read_next_dictionary() const
// Takes ownership of fd.
int scan(const string &path, int fd, dev_t parent_dev, dir_time modified, dir_time db_modified, ExistingDB *existing_db, DatabaseReceiver *corpus, DictionaryBuilder *dict_builder)
{
if (string_list_contains_dir_path(&conf_prunepaths, &conf_prunepaths_index, path)) {
if (conf_debug_pruning) {
fprintf(stderr, "Skipping `%s': in prunepaths\n", path.c_str());
}
close(fd);
return 0;
}
if (conf_prune_bind_mounts && is_bind_mount(path.c_str())) {
if (conf_debug_pruning) {
fprintf(stderr, "Skipping `%s': bind mount\n", path.c_str());
@@ -676,12 +683,6 @@ int scan(const string &path, int fd, dev_t parent_dev, dir_time modified, dir_ti
}
continue;
}
if (string_list_contains_dir_path(&conf_prunepaths, &conf_prunepaths_index, (path_plus_slash + e.name).c_str())) {
if (conf_debug_pruning) {
fprintf(stderr, "Skipping `%s/%s': in prunepaths\n", path.c_str(), e.name.c_str());
}
continue;
}
e.fd = opendir_noatime(fd, e.name.c_str());
if (e.fd == -1) {