btrfs: remove root usage from can_overcommit
authorJeff Mahoney <jeffm@suse.com>
Wed, 17 May 2017 15:38:36 +0000 (11:38 -0400)
committerDavid Sterba <dsterba@suse.com>
Mon, 19 Jun 2017 16:26:00 +0000 (18:26 +0200)
commitc1c4919b112d2591bea5c68b54a24f083619f81b
tree2cd3e3d7712d7ca7a124a2d9095cc29947e8ad2b
parent1b86826d12dc4acf9576cad9c43da74025dc8074
btrfs: remove root usage from can_overcommit

can_overcommit using the root to determine the allocation profile
is the only use of a root in the call graph below reserve_metadata_bytes.

It turns out that we only need to know whether the allocation is for
the chunk root or not -- and we can pass that around as a bool instead.

This allows us to pull root usage out of the reservation path all the
way up to reserve_metadata_bytes itself, which uses it only to compare
against fs_info->chunk_root to set the bool.  In turn, this eliminates
a bunch of races where we use a particular root too early in the mount
process.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Reviewed-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent-tree.c