X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=cleaner%2Fcleaner;h=58292e4ede17693a045151ce680310c22ba223c9;hb=bdb05ff1ad95ab25e13934f66c83452ef00119fe;hp=1e564e83c45e5c79c6f009716901589af475bfb2;hpb=524d3c03d2f3076a349768c177a0e523a7fb333e;p=bluesky.git diff --git a/cleaner/cleaner b/cleaner/cleaner index 1e564e8..58292e4 100755 --- a/cleaner/cleaner +++ b/cleaner/cleaner @@ -401,7 +401,7 @@ def rewrite_inode(backend, inode_map, inum, log, copy_data=True): log.write(inode, 1) inode_map.mark_updated(inum) -def run_cleaner(backend, inode_map, log): +def run_cleaner(backend, inode_map, log, repack_inodes=False): # Determine which segments are poorly utilized and should be cleaned. We # need better heuristics here. for (s, u) in sorted(inode_map.util.segments.items()): @@ -416,7 +416,10 @@ def run_cleaner(backend, inode_map, log): # Given that list of segments to clean, scan through those segments to find # data which is still live and mark relevant inodes as needing to be # rewritten. - dirty_inodes = set() + if repack_inodes: + dirty_inodes = set(inode_map.inodes) + else: + dirty_inodes = set() dirty_inode_data = set() for s in inode_map.obsolete_segments: filename = backend.loc_to_name(s)