• Chris Mason's avatar
    Btrfs: Add a skip_locking parameter to struct path, and make various funcs honor it · 5cd57b2c
    Chris Mason authored
    Allocations may need to read in block groups from the extent allocation tree,
    which will require a tree search and take locks on the extent allocation
    tree.  But, those locks might already be held in other places, leading
    to deadlocks.
    
    Since the alloc_mutex serializes everything right now, it is safe to
    skip the btree locking while caching block groups.  A better fix will be
    to either create a recursive lock or find a way to back off existing
    locks while caching block groups.
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    5cd57b2c
ctree.c 78.2 KB