path: root/man
diff options
authorJosef Bacik <>2013-03-22 10:52:07 -0400
committerChris Mason <>2013-06-19 13:35:15 -0400
commitbd338824de665c0ccef576ccd119cfc7dace829c (patch)
tree01a9edee7ffec12cf165d3e42a3733278f74e5c3 /man
parent650e656a8b9c1fbe4ec5cd8c48ae285b8abd3b69 (diff)
Btrfs-image: add the ability to santize file names when making an image
We've had a few users who wouldn't (or couldn't) provide us btrfs-images because we maintain the file names when making an image. So introduce a sanitize option. There are two uses, one that is fast and the other that is dog slow. The fast way just generates garbage that's equal in length to the original name. The slow way will try and find a crc32c collision for the file name that is also the same length. Finding a crc32c collision for the file name "btrfs-progs" on my box without CPU crc32c support takes a little more than 3 minutes, and a little less than 2 minutes for my box that has CPU crc32c support, so it's a lengthy and CPU intensive process. The idea is that we use -s for most cases, and then only use -ss when we need the file system tree to be somewhat sane. I could probably do a better job about finding collisions, but I'll have to revist that later. Thanks, Signed-off-by: Josef Bacik <> Signed-off-by: Chris Mason <>
Diffstat (limited to 'man')
1 files changed, 9 insertions, 0 deletions
diff --git a/man/ b/man/
index 7e0e3b0b..d5ba594a 100644
--- a/man/
+++ b/man/
@@ -29,6 +29,15 @@ number of threads (1 ~ 32) to be used to process the image dump or restore.
use the old restore method, this does not fixup the chunk tree so the restored
file system will not be able to be mounted.
+Sanitize the file names when generating the image. One \fB-s\fP means just
+generate random garbage, which means that the directory indexes won't match up
+since the hashes won't match with the garbage filenames. Using \fB-ss\fP will
+calculate a collision for the filename so that the hashes match, and if it
+can't calculate a collision then it will just generate garbage. The collision
+calculator is very time and CPU intensive so only use it if you are having
+problems with your file system tree and need to have it mostly working.
Walk all the trees manually and copy any blocks that are referenced. Use this
option if your extent tree is corrupted to make sure that all of the metadata is