From 6763084ae53fc0228d50ab94bbbced89c1b14f1c Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 1 Aug 2012 22:43:03 -0400 Subject: [PATCH] Count bytes freed deleting unused links --- src/libstore/gc.cc | 6 ++++-- src/libstore/local-store.hh | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc index a1bb4051cd..255dc3aa09 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 721cc6afbe..6a5e3641c4 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);