[tracker] libtracker-miner: Check for content filters being triggered on deletion checks
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker] libtracker-miner: Check for content filters being triggered on deletion checks
- Date: Thu, 5 May 2016 11:46:39 +0000 (UTC)
commit 844a11db676ff12ff67820f1b426800c4908a304
Author: Carlos Garnacho <carlosg gnome org>
Date: Tue May 3 01:02:29 2016 +0200
libtracker-miner: Check for content filters being triggered on deletion checks
Store temporarily whether a folder triggered a filter based on its content
so we can perform the deletion of previously indexed files in that folder.
src/libtracker-miner/tracker-file-notifier.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-file-notifier.c b/src/libtracker-miner/tracker-file-notifier.c
index 49f8aa8..a530223 100644
--- a/src/libtracker-miner/tracker-file-notifier.c
+++ b/src/libtracker-miner/tracker-file-notifier.c
@@ -65,6 +65,7 @@ typedef struct {
guint directories_ignored;
guint files_found;
guint files_ignored;
+ guint current_dir_content_filtered : 1;
} RootData;
typedef struct {
@@ -262,6 +263,8 @@ crawler_check_directory_contents_cb (TrackerCrawler *crawler,
} else {
tracker_monitor_remove (priv->monitor, canonical);
}
+ } else {
+ priv->current_index_root->current_dir_content_filtered = TRUE;
}
return process;
@@ -611,7 +614,8 @@ sparql_contents_check_deleted (TrackerFileNotifier *notifier,
file_type,
iri, 0);
g_signal_emit (notifier, signals[FILE_DELETED], 0, canonical);
- } else if (!tracker_indexing_tree_file_is_indexable (priv->indexing_tree,
+ } else if (priv->current_index_root->current_dir_content_filtered ||
+ !tracker_indexing_tree_file_is_indexable (priv->indexing_tree,
canonical,
file_type)) {
/* File is there, but is not indexable anymore, remove too */
@@ -671,6 +675,7 @@ finish_current_directory (TrackerFileNotifier *notifier,
priv = notifier->priv;
directory = priv->current_index_root->current_dir;
priv->current_index_root->current_dir = NULL;
+ priv->current_index_root->current_dir_content_filtered = FALSE;
/* If crawling was interrupted, we take all collected info as invalid.
* Otherwise we dispose regular files here, only directories are
@@ -880,6 +885,7 @@ sparql_files_query_cb (GObject *object,
flags = priv->current_index_root->flags;
if ((flags & TRACKER_DIRECTORY_FLAG_CHECK_DELETED) != 0 ||
+ priv->current_index_root->current_dir_content_filtered ||
file_notifier_is_directory_modified (notifier, directory)) {
/* The directory has updated its mtime, this means something
* was either added or removed in the mean time. Crawling
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]