Unlike XFS, the ext3 filesystem uses an indirect block mapping scheme
instead of using extents to keep track of where a file's byte contents
are stored. The upcoming ext4 filesystem uses extents to store a file's
contents and will support for online defragmentation in a similar manner to xfs_fsr.

For ext3 filesystems, the filefrag(1) utility shows you how fragmented
a file is but does not allow you to fix it. The -m option to tune2fs
allows you to set the percent of blocks that can be allocated only by
privileged processes. By setting aside 10% of your disk from normal
users you can avoid the bad fragmentation that occurs when a filesystem
fills up.