]> git.sesse.net Git - plocate/blobdiff - updatedb.cpp
Revert "In updatedb, check prunepaths _before_ opening the directory."
[plocate] / updatedb.cpp
index 6f88c94d7789e214ce7bae30d15cb610e9d776e0..cfdd3afff0c8f0773f865065d8202ecea2d3f296 100644 (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) {