summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Van Hoof <philip@codeminded.be>2011-02-10 10:06:00 +0100
committerPhilip Van Hoof <philip@codeminded.be>2011-02-10 10:12:28 +0100
commit4c3e8c1b2492900bee67057a5b8ca3413e64961a (patch)
tree36d5fd814e93e64f27cf389da6a332e5fc453664
parent1e1c73278160b5ec31b60f57457b6f8865677067 (diff)
downloadtracker-4c3e8c1b2492900bee67057a5b8ca3413e64961a.tar.gz
libtracker-data: Detect corruption before integrity_check at set of WAL
-rw-r--r--src/libtracker-data/tracker-db-manager.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/libtracker-data/tracker-db-manager.c b/src/libtracker-data/tracker-db-manager.c
index 5f48d0ef2..d29083b69 100644
--- a/src/libtracker-data/tracker-db-manager.c
+++ b/src/libtracker-data/tracker-db-manager.c
@@ -1046,15 +1046,11 @@ tracker_db_manager_init (TrackerDBManagerFlags flags,
dbs[i].iface = db_interface_create (i, &internal_error);
if (internal_error) {
- guint y;
-
- for (y = 1; y < i; y++) {
- g_object_unref (dbs[y].iface);
- dbs[y].iface = NULL;
- }
-
- g_propagate_error (error, internal_error);
- return FALSE;
+ /* If this already doesn't succeed, then surely the file is
+ * corrupt. No need to check for integrity anymore. */
+ g_error_free (internal_error);
+ must_recreate = TRUE;
+ continue;
}
dbs[i].mtime = tracker_file_get_mtime (dbs[i].abs_filename);