diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-01-04T23·13+0100 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-01-04T23·13+0100 |
commit | e42df686f309c5cd08a8653207e79e9caae37b67 (patch) | |
tree | ff891fbc189d2aef7d099d0f675f96f4e72f060b | |
parent | 92926be2fe15b25759e8e3e129a093798f8c37b6 (diff) |
Delete a left-over trash directory before doing a GC
-rw-r--r-- | src/libstore/gc.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc index a6b1a35e77ef..113a7da15411 100644 --- a/src/libstore/gc.cc +++ b/src/libstore/gc.cc @@ -659,7 +659,10 @@ void LocalStore::collectGarbage(const GCOptions & options, GCResults & results) increase, since we hold locks on everything. So everything that is not reachable from `roots'. */ - if (state.shouldDelete) createDirs(state.trashDir); + if (state.shouldDelete) { + if (pathExists(state.trashDir)) deleteGarbage(state, state.trashDir); + createDirs(state.trashDir); + } /* Now either delete all garbage paths, or just the specified paths (for gcDeleteSpecific). */ |