about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-08-02T02·34-0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-08-02T02·34-0400
commit01d56c1eeca497de247413a64a544605c53d9d41 (patch)
tree11f42a290a031e6a23781c379f7b34fb6bbc0ff3
parent967d066d8e452e59507ebae7585d6f34a4edf687 (diff)
Drop the block count in the garbage collector
-rw-r--r--src/libstore/build.cc11
-rw-r--r--src/libstore/gc.cc5
-rw-r--r--src/libstore/local-store.hh3
-rw-r--r--src/libstore/remote-store.cc2
-rw-r--r--src/libstore/store-api.hh4
-rw-r--r--src/libutil/util.cc21
-rw-r--r--src/libutil/util.hh3
-rw-r--r--src/nix-store/nix-store.cc9
-rw-r--r--src/nix-worker/nix-worker.cc2
9 files changed, 23 insertions, 37 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 290635695e05..91f235b7ab10 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -606,18 +606,17 @@ void getOwnership(const Path & path)
 }
 
 
-void deletePathWrapped(const Path & path,
-    unsigned long long & bytesFreed, unsigned long long & blocksFreed)
+void deletePathWrapped(const Path & path, unsigned long long & bytesFreed)
 {
     try {
         /* First try to delete it ourselves. */
-        deletePath(path, bytesFreed, blocksFreed);
+        deletePath(path, bytesFreed);
     } catch (SysError & e) {
         /* If this failed due to a permission error, then try it with
            the setuid helper. */
         if (haveBuildUsers() && !amPrivileged()) {
             getOwnership(path);
-            deletePath(path, bytesFreed, blocksFreed);
+            deletePath(path, bytesFreed);
         } else
             throw;
     }
@@ -626,8 +625,8 @@ void deletePathWrapped(const Path & path,
 
 void deletePathWrapped(const Path & path)
 {
-    unsigned long long dummy1, dummy2;
-    deletePathWrapped(path, dummy1, dummy2);
+    unsigned long long dummy1;
+    deletePathWrapped(path, dummy1);
 }
 
 
diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc
index 7753b3fe20c0..a1bb4051cd1b 100644
--- a/src/libstore/gc.cc
+++ b/src/libstore/gc.cc
@@ -425,10 +425,9 @@ bool LocalStore::isActiveTempFile(const GCState & state,
 void LocalStore::deleteGarbage(GCState & state, const Path & path)
 {
     printMsg(lvlInfo, format("deleting `%1%'") % path);
-    unsigned long long bytesFreed, blocksFreed;
-    deletePathWrapped(path, bytesFreed, blocksFreed);
+    unsigned long long bytesFreed;
+    deletePathWrapped(path, bytesFreed);
     state.results.bytesFreed += bytesFreed;
-    state.results.blocksFreed += blocksFreed;
 }
 
 
diff --git a/src/libstore/local-store.hh b/src/libstore/local-store.hh
index 50910f353ad1..721cc6afbed5 100644
--- a/src/libstore/local-store.hh
+++ b/src/libstore/local-store.hh
@@ -304,8 +304,7 @@ void getOwnership(const Path & path);
 
 /* Like deletePath(), but changes the ownership of `path' using the
    setuid wrapper if necessary (and possible). */
-void deletePathWrapped(const Path & path,
-    unsigned long long & bytesFreed, unsigned long long & blocksFreed);
+void deletePathWrapped(const Path & path, unsigned long long & bytesFreed);
 
 void deletePathWrapped(const Path & path);
  
diff --git a/src/libstore/remote-store.cc b/src/libstore/remote-store.cc
index cbb70b2fd726..5e7f02749135 100644
--- a/src/libstore/remote-store.cc
+++ b/src/libstore/remote-store.cc
@@ -494,7 +494,7 @@ void RemoteStore::collectGarbage(const GCOptions & options, GCResults & results)
     
     results.paths = readStrings<PathSet>(from);
     results.bytesFreed = readLongLong(from);
-    results.blocksFreed = readLongLong(from);
+    readLongLong(from); // obsolete
 }
 
 
diff --git a/src/libstore/store-api.hh b/src/libstore/store-api.hh
index c0fb50f23dd2..79ae0170d700 100644
--- a/src/libstore/store-api.hh
+++ b/src/libstore/store-api.hh
@@ -65,13 +65,9 @@ struct GCResults
        number of bytes that would be or was freed. */
     unsigned long long bytesFreed;
 
-    /* The number of file system blocks that would be or was freed. */
-    unsigned long long blocksFreed;
-
     GCResults()
     {
         bytesFreed = 0;
-        blocksFreed = 0;
     }
 };
 
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index 689fc543af31..9d8e4afed37d 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -297,8 +297,7 @@ void computePathSize(const Path & path,
 }
 
 
-static void _deletePath(const Path & path, unsigned long long & bytesFreed,
-    unsigned long long & blocksFreed)
+static void _deletePath(const Path & path, unsigned long long & bytesFreed)
 {
     checkInterrupt();
 
@@ -308,10 +307,8 @@ static void _deletePath(const Path & path, unsigned long long & bytesFreed,
 
     if (S_ISDIR(st.st_mode) || S_ISREG(st.st_mode)) makeMutable(path);
 
-    if (!S_ISDIR(st.st_mode) && st.st_nlink == 1) {
-        bytesFreed += st.st_size;
-        blocksFreed += st.st_blocks;
-    }
+    if (!S_ISDIR(st.st_mode) && st.st_nlink == 1)
+        bytesFreed += st.st_blocks * 512;
 
     if (S_ISDIR(st.st_mode)) {
 	Strings names = readDirectory(path);
@@ -323,7 +320,7 @@ static void _deletePath(const Path & path, unsigned long long & bytesFreed,
 	}
 
 	for (Strings::iterator i = names.begin(); i != names.end(); ++i)
-            _deletePath(path + "/" + *i, bytesFreed, blocksFreed);
+            _deletePath(path + "/" + *i, bytesFreed);
     }
 
     if (remove(path.c_str()) == -1)
@@ -333,19 +330,17 @@ static void _deletePath(const Path & path, unsigned long long & bytesFreed,
 
 void deletePath(const Path & path)
 {
-    unsigned long long dummy1, dummy2;
-    deletePath(path, dummy1, dummy2);
+    unsigned long long dummy;
+    deletePath(path, dummy);
 }
 
 
-void deletePath(const Path & path, unsigned long long & bytesFreed,
-    unsigned long long & blocksFreed)
+void deletePath(const Path & path, unsigned long long & bytesFreed)
 {
     startNest(nest, lvlDebug,
         format("recursively deleting path `%1%'") % path);
     bytesFreed = 0;
-    blocksFreed = 0;
-    _deletePath(path, bytesFreed, blocksFreed);
+    _deletePath(path, bytesFreed);
 }
 
 
diff --git a/src/libutil/util.hh b/src/libutil/util.hh
index 9b8656f70485..edb7c0fa6c60 100644
--- a/src/libutil/util.hh
+++ b/src/libutil/util.hh
@@ -80,8 +80,7 @@ void computePathSize(const Path & path,
    returns the number of bytes and blocks freed. */
 void deletePath(const Path & path);
 
-void deletePath(const Path & path, unsigned long long & bytesFreed,
-    unsigned long long & blocksFreed);
+void deletePath(const Path & path, unsigned long long & bytesFreed);
 
 /* Make a path read-only recursively. */
 void makePathReadOnly(const Path & path);
diff --git a/src/nix-store/nix-store.cc b/src/nix-store/nix-store.cc
index 9a675fcd576a..c182dbe49c7a 100644
--- a/src/nix-store/nix-store.cc
+++ b/src/nix-store/nix-store.cc
@@ -544,10 +544,9 @@ static void opCheckValidity(Strings opFlags, Strings opArgs)
 }
 
 
-static string showBytes(unsigned long long bytes, unsigned long long blocks)
+static string showBytes(unsigned long long bytes)
 {
-    return (format("%d bytes (%.2f MiB, %d blocks)")
-        % bytes % (bytes / (1024.0 * 1024.0)) % blocks).str();
+    return (format("%.2f MiB") % (bytes / (1024.0 * 1024.0))).str();
 }
 
 
@@ -562,7 +561,7 @@ struct PrintFreed
         if (show)
             cout << format("%1% store paths deleted, %2% freed\n")
                 % results.paths.size()
-                % showBytes(results.bytesFreed, results.blocksFreed);
+                % showBytes(results.bytesFreed);
     }
 };
 
@@ -735,7 +734,7 @@ static void showOptimiseStats(OptimiseStats & stats)
 {
     printMsg(lvlError,
         format("%1% freed by hard-linking %2% files; there are %3% files with equal contents out of %4% files in total")
-        % showBytes(stats.bytesFreed, stats.blocksFreed)
+        % showBytes(stats.bytesFreed)
         % stats.filesLinked
         % stats.sameContents
         % stats.totalFiles);
diff --git a/src/nix-worker/nix-worker.cc b/src/nix-worker/nix-worker.cc
index 74a619c71d0a..80c0d50609c7 100644
--- a/src/nix-worker/nix-worker.cc
+++ b/src/nix-worker/nix-worker.cc
@@ -503,7 +503,7 @@ static void performOp(unsigned int clientVersion,
         
         writeStrings(results.paths, to);
         writeLongLong(results.bytesFreed, to);
-        writeLongLong(results.blocksFreed, to);
+        writeLongLong(0, to); // obsolete
         
         break;
     }