From: John Reiser on
> I was responding to the OP's original request whether the
> conversion of an ext3 filesystem will, in the end, be a
> 100% ext4 filesystem.
>
> IT WILL NOT.

Yes it will. In a very few cases then running a defrag afterwards
will give no changes; you cannot get any better than that.
One such case could be immediately after a single-threaded restore
onto an empty ext3. The eventual length of every file is known before
it is created, so the allocation heuristics of ext3 *might* in fact
result in only one extent per file after "dumb" conversion to ext4.

In most cases, running a defrag after "dumb" ext3-to-ext4 will result in
modest to significant reduction in number of extents for many many files.
That is, many many of the files immediately after the ext3-to-ext4 conversion
probably will have significantly more than 120% of the expected extents
(which is not 1 for larger files, by the way, due to the impossibility
of "beat the allocator" when extensions or simultaneous allocations occur),
whereas in many filesystems that have been ext4 from the beginning, then
only (say) 15% to 20% of the files will have more than 120% of the expected
number of extents. However, in nearly all cases of "dumb" ext3-to-ext4
conversion then lots and lots of the larger files will have lots and
lots of their space covered by at most a dozen extents; and this is a
significant improvement over ext3 for the purposes of fsck and general
intensive uses. One common exception, where the ext3-to-ext4 conversion
might give little or no improvement, may be a very active text-only
news or mail spool, where nearly all files are very small (40KB
or less) and the ext3 contiguous allocation heuristics might produce
what results in many extents because of high contention despite short
lifetimes.

> All new files (after the conversion) will be considered a
> "100% ext4 file" ... files before the conversion will be
> read and written in a transparent manner, but not have
> ext4-specific attributes.

The only relevant "ext4-specific attribute" (in contrast to ext3)
is number of extents. By some measures the ideal is exactly 1 extent
for every file. However, this is impossible to achieve economically
in a dynamic filesystem. In practice some fraction of files WILL
have more than one extent. The only question is the distribution
of the number of extents per file, and usually with reference
to the size and/or access frequency of those files. In many large
filesystems over 60% of the files are accessed twice or less:
once when created, and at most once more during their entire life
(not counting general backups.) Those files often are good candidates
for "don't care too much" with respect to the number of extents.

--