about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-08-02T02·43-0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-08-02T02·43-0400
commit6763084ae53fc0228d50ab94bbbced89c1b14f1c (patch)
tree07d162ac68a26df478b406b634a6668fe0af3c3e /src
parent01d56c1eeca497de247413a64a544605c53d9d41 (diff)
Count bytes freed deleting unused links
Diffstat (limited to 'src')
-rw-r--r--src/libstore/gc.cc6
-rw-r--r--src/libstore/local-store.hh2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc
index a1bb4051cd1b..255dc3aa099f 100644
--- a/src/libstore/gc.cc
+++ b/src/libstore/gc.cc
@@ -575,7 +575,7 @@ bool LocalStore::tryToDelete(GCState & state, const Path & path)
    safely deleted.  FIXME: race condition with optimisePath(): we
    might see a link count of 1 just before optimisePath() increases
    the link count. */
-void LocalStore::removeUnusedLinks()
+void LocalStore::removeUnusedLinks(const GCState & state)
 {
     AutoCloseDir dir = opendir(linksDir.c_str());
     if (!dir) throw SysError(format("opening directory `%1%'") % linksDir);
@@ -604,6 +604,8 @@ void LocalStore::removeUnusedLinks()
 
         if (unlink(path.c_str()) == -1)
             throw SysError(format("deleting `%1%'") % path);
+
+        state.results.bytesFreed += st.st_blocks * 512;
     }
 
     struct stat st;
@@ -732,7 +734,7 @@ void LocalStore::collectGarbage(const GCOptions & options, GCResults & results)
 
     /* Clean up the links directory. */
     printMsg(lvlError, format("deleting unused links..."));
-    removeUnusedLinks();
+    removeUnusedLinks(state);
 }
 
 
diff --git a/src/libstore/local-store.hh b/src/libstore/local-store.hh
index 721cc6afbed5..6a5e3641c4eb 100644
--- a/src/libstore/local-store.hh
+++ b/src/libstore/local-store.hh
@@ -264,7 +264,7 @@ private:
         
     int openGCLock(LockType lockType);
     
-    void removeUnusedLinks();
+    void removeUnusedLinks(const GCState & state);
 
     void startSubstituter(const Path & substituter,
         RunningSubstituter & runningSubstituter);