Btrfs: fix block_rsv and space_info lock ordering
authorStefan Behrens <sbehrens@giantdisaster.de>
Fri, 27 Apr 2012 16:41:46 +0000 (12:41 -0400)
committerChris Mason <chris.mason@oracle.com>
Fri, 27 Apr 2012 17:55:14 +0000 (13:55 -0400)
commit1f699d38b6556c393ac80f1c23c2053502a51631
tree9ba8e3c95cc044461eab17dfba50515535ca2a25
parent1daf3540fa77faea2f91d96bcaf07ce48ee827be
Btrfs: fix block_rsv and space_info lock ordering

may_commit_transaction() calls
        spin_lock(&space_info->lock);
        spin_lock(&delayed_rsv->lock);
and update_global_block_rsv() calls
        spin_lock(&block_rsv->lock);
        spin_lock(&sinfo->lock);

Lockdep complains about this at run time.
Everywhere except in update_global_block_rsv(), the space_info lock is
the outer lock, therefore the locking order in update_global_block_rsv()
is changed.

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