Why does ext3 allocate 8 blocks for files that are few bytes long

The title is clear: why does ext3 allocate 8 blocks for files that are few bytes long?
If I create a file named "test", put a few chars in it, and then I run:

stat test

I get that "Blocks: 8"

I searched in the web and found that ext does that, it allocates 8 blocks even if It doesn't need it. Fine by me, but what if, at some moment, I need that space? Will I get it?
If so, how does ext3 manage those semi-allocated blocks?
If not... well then, I think something is wrong here, giving 32KB to any small file as if hdd space were free seems stupid.

Could anyone enlighten me?

This is so that the file can grow without fragmentation. There are parameters you can change, this may be among them. You can always try a different file system, but, always take a backup before any file system operations.

-----Post Update-----

You should read up on that. You can change, at creation, the block group size or even the reserved count (5% space reserved for root, by default).

I believe that is the "tail", giving the file room to expand without fragmenting. You can turn that off with the 'notail' option to mount.

Yes, I know ext3 does this to prevent fragmentation. But

mark54g, I think that "block group size" you mention is not the same thing as what I am talking about. The block group size is the size of the groups in the partition (ext2/3 is divided internally in block groups) and has nothing to do with ext3 giving me 8 blocks when it should be giving me 1.

Corona688, I searched and all I found about the notail option is that it is only for reiserFS, not for ext3.

Any ideas?

Hmm. Tail-packing is being worked on for ext3 apparently but still an alpha feature.

I do think you can get that extra space if you really need it. But if your filesystem gets to the 99% full point where it needs it then you've got bigger problems. No filesystems deal well with being nearly full.