Btrfs: allow more metadata chunk preallocation
authorChris Mason <chris.mason@oracle.com>
Wed, 11 Nov 2009 15:16:57 +0000 (10:16 -0500)
committerChris Mason <chris.mason@oracle.com>
Wed, 11 Nov 2009 19:20:20 +0000 (14:20 -0500)
commit33b258086441dd07e00133c79fcd8cbc6a76d737
treebeab74a12b7650576dbe2f97301f0905699d4292
parentf5a84ee3cdd88d96b7bcede10af58598ad8d52a7
Btrfs: allow more metadata chunk preallocation

On an FS where all of the space has not been allocated into chunks yet,
the enospc can return enospc just because the existing metadata chunks
are full.

We get around this by allowing more metadata chunks to be allocated up
to a certain limit, and finding the right limit is a little fuzzy.  The
problem is the reservations for delalloc would preallocate way too much
of the FS as metadata.  We need to start saying no and just force some
IO to happen.

But we also need to let a reasonable amount of the FS become metadata.
This bumps the hard limit up, later releases will have a better system.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/extent-tree.c