Btrfs-image: add the ability to santize file names when making an image
authorJosef Bacik <jbacik@fusionio.com>
Fri, 22 Mar 2013 14:52:07 +0000 (10:52 -0400)
committerChris Mason <chris.mason@fusionio.com>
Wed, 19 Jun 2013 17:35:15 +0000 (13:35 -0400)
commitbd338824de665c0ccef576ccd119cfc7dace829c
tree01a9edee7ffec12cf165d3e42a3733278f74e5c3
parent650e656a8b9c1fbe4ec5cd8c48ae285b8abd3b69
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 <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
btrfs-image.c
man/btrfs-image.8.in