about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libstore/gc.cc16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc
index 2c75b16f61..e04e9c1071 100644
--- a/src/libstore/gc.cc
+++ b/src/libstore/gc.cc
@@ -118,13 +118,15 @@ Path addPermRoot(const Path & _storePath, const Path & _gcRoot,
     }
 
     /* Check that the root can be found by the garbage collector. */
-    Roots roots = store->findRoots();
-    if (roots.find(gcRoot) == roots.end())
-        printMsg(lvlError, 
-            format(
-                "warning: `%1%' is not in a directory where the garbage collector looks for roots; "
-                "therefore, `%2%' might be removed by the garbage collector")
-            % gcRoot % storePath);
+    if (queryBoolSetting("gc-check-reachability", true)) {
+        Roots roots = store->findRoots();
+        if (roots.find(gcRoot) == roots.end())
+            printMsg(lvlError, 
+                format(
+                    "warning: `%1%' is not in a directory where the garbage collector looks for roots; "
+                    "therefore, `%2%' might be removed by the garbage collector")
+                % gcRoot % storePath);
+    }
         
     /* Grab the global GC root, causing us to block while a GC is in
        progress.  This prevents the set of permanent roots from