Btrfs: use commit root when loading free space cache
authorJosef Bacik <josef@redhat.com>
Thu, 12 Apr 2012 20:03:57 +0000 (16:03 -0400)
committerVarun Wadekar <vwadekar@nvidia.com>
Wed, 18 Apr 2012 15:03:38 +0000 (20:03 +0530)
commitb24f9790643a7a8ba8091ee422489bc7aef934d6
tree496373e26483ef1063dbaf47002e2ff05ec79511
parent34b3cbb029cf33b3b718e76ac3e6061e5601d6dd
Btrfs: use commit root when loading free space cache

A user reported that booting his box up with btrfs root on 3.4 was way
slower than on 3.3 because I removed the ideal caching code.  It turns out
that we don't load the free space cache if we're in a commit for deadlock
reasons, but since we're reading the cache and it hasn't changed yet we are
safe reading the inode and free space item from the commit root, so do that
and remove all of the deadlock checks so we don't unnecessarily skip loading
the free space cache.  The user reported this fixed the slowness.  Thanks,

Tested-by: Calvin Walton <calvin.walton@kepstin.ca>
Signed-off-by: Josef Bacik <josef@redhat.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/extent-tree.c
fs/btrfs/free-space-cache.c