On Thu, Feb 07, 2013 at 08:52:43AM -0700, Eric Sandeen wrote: > On 2/6/13 6:08 PM, David Sterba wrote: > > On Tue, Jan 29, 2013 at 02:41:08PM -0600, Eric Sandeen wrote: > >> The manpage for the "-r" option simply says that > >> it will copy the path specified to -r into the newly > >> made filesystem. > >> > >> There's not a lot of reason to treat that option as differently > >> as it is now - today it ignores discard, fs size, and mixed > >> options, for example. It also failed to check whether the > >> target device was mounted before proceeding. Etc... > >> > >> Rework things so that we really follow the same paths whether > >> or not -r is specified, but with one special case for -r: > >> > >> * If the device does not exist, it will be created as > >> a regular file of the minimum size to hold the -r path, > >> or of size specified by the -b option. > >> > >> This also changes a little behavior; it does not pre-fill > >> the new file with zeros, but allows it to be sparse, and does > >> not truncate an existing device file. If you want to start > >> with an empty file, just don't point it at an existing > >> file... > > > > Fixes numerous bugs and I find the changes in behaviour sane and > > reasonable. A quick test failed for me when the image file does not > > exist: > > > > $ rm image > > $ ./mkfs.btrfs -r . image > > ... > > not enough free space > > add_file_items failed > > unable to traverse_directory > > Making image is aborted. > > ret = -1 > > mkfs.btrfs: mkfs.c:1533: main: Assertion `!(ret)' failed. > > > > seems that the estimated size is not sufficient. > > ho hum, thanks for checking. I guess I only tried it on a very small > source directory. For now, figuring out btrfs space usage for a given > set of files is above my pay grade and experience, I'm afraid. :( We should probably make a way to compact a given FS down to minimal size. Then we don't have to worry about size estimates at all. In other words, two passes instead of one. -chris -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
