]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: be smarter about committing the transaction in reserve_metadata_bytes
authorJosef Bacik <josef@redhat.com>
Fri, 4 Nov 2011 02:54:25 +0000 (22:54 -0400)
committerChris Mason <chris.mason@oracle.com>
Sun, 6 Nov 2011 08:04:19 +0000 (03:04 -0500)
commit64a8e93e89243511d81e34d196059b3cc39dd236
treed111c306c5dfd622c04a0568efde089bdc4577b3
parent76dc088cc7a83e9da512e825dc33eecf9eddc637
Btrfs: be smarter about committing the transaction in reserve_metadata_bytes

Because of the overcommit stuff I had to make it so that we committed the
transaction all the time in reserve_metadata_bytes in case we had overcommitted
because of delayed items.  This was because previously we had no way of knowing
how much space was reserved for delayed items.  Now that we have the
delayed_block_rsv we can check it to see if committing the transaction would get
us anywhere.  This patch breaks out the committing logic into a helper function
that will check to see if committing the transaction would free enough space for
us to get anything done.  With this patch xfstests 83 goes from taking 445
seconds to taking 28 seconds on my box.  Thanks,

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