Re: [e2fsprogs] initdir: Writing inode after the initial write?

Darren Hart
2012-12-04T17:46:09Z

On 12/04/2012 07:22 AM, Theodore Ts'o wrote:
> On Mon, Dec 03, 2012 at 11:46:07AM -0800, Darren Hart wrote:
>>> Maybe Ted can confirm whether that is true or not. At least I recall
>>> that the block allocator inside libext2fs was horrible, and creating
>>> large files was problematic.
>>
>> Ted, can you confirm?
>
> The block allocator inside libext2fs is primitive; it will find the
> first free block and use it. It should be OK for populating large
> flash devices for file system images stored on flash devices (where
> seeks don't matter so block group placement isn't a big deal), and
> especially for fixed root file system images which are mounted
> read-only and which tend to be updated only once in a while (i.e., in
> the cases of Android system updates), and so you don't really care
> about aligning file writes to eMMC erase blocks.
>
> It could certainly be made better, and for people who were trying to
> use libext2fs with FUSE targetting hard drives, there are ample
> opportunities for improvements.....
>

I think what I'm reading here is that if you care about having a
filesystem that makes hardware specific optimizations, you're better off
mounting the device and copying the filesystem over. In that case, plan
on needing root access.

> Creating large files shouldn't be a problem (unless what you mean is
> ext4 huge files ala the huge file feature where the number of 512
> blocks exceeds 2**32, in which case you should probably test that case
> if you care about it), and it certainly will create extents-based
> files.

Great, sounds like this approach is still viable. Thanks Ted!

--
Darren Hart
Intel Open Source Technology Center
Yocto Project - Technical Lead - Linux Kernel