"2.6. Delayed allocation
Delayed allocation is a performance feature (it doesn't change the
disk format) found in a few modern filesystems such as XFS, ZFS,
btrfs or Reiser 4, and it consists in delaying the allocation of
blocks as much as possible, contrary to what traditionally
filesystems (such as Ext3, reiser3, etc) do: allocate the blocks as
soon as possible. For example, if a process write()s, the
filesystem code will allocate immediately the blocks where the data
will be placed - even if the data is not being written right now to
the disk and it's going to be kept in the cache for some time. This
approach has disadvantages. For example when a process is writing
continually to a file that grows, successive write()s allocate
blocks for the data, but they don't know if the file will keep
growing. Delayed allocation, on the other hand, does not allocate
the blocks immediately when the process write()s, rather, it delays
the allocation of the blocks while the file is kept in cache, until
it is really going to be written to the disk. This gives the block
allocator the opportunity to optimize the allocation in situations
where the old system couldn't. Delayed allocation plays very nicely
with the two previous features mentioned, extents and multiblock
allocation, because in many workloads when the file is written
finally to the disk it will be allocated in extents whose block
allocation is done with the mballoc allocator. The performance is
much better, and the fragmentation is much improved in some
workloads.
"2.7. Fast fsck
Fsck is a very slow operation, especially the first step: checking
all the inodes in the file system. In Ext4, at the end of each
group's inode table will be stored a list of unused inodes (with a
checksum, for safety), so fsck will not check those inodes. The
result is that total fsck time improves from 2 to 20 times,
depending on the number of used inodes
(http://kerneltrap.org/Linux/Improving_fsck_Speeds_in_Ext4). It
must be noticed that it's fsck, and not Ext4, who will build the
list of unused inodes. This means that you must run fsck to get the
list of unused inodes built, and only the next fsck run will be
faster (you need to pass a fsck in order to convert a Ext3
filesystem to Ext4 anyway). There's also a feature that takes part
in this fsck speed up - "flexible block groups" - that also speeds
up filesystem operations."