Btrfs: Force caching of metadata block groups on mount to avoid deadlock
authorChris Mason <chris.mason@oracle.com>
Thu, 17 Jul 2008 16:54:48 +0000 (12:54 -0400)
committerChris Mason <chris.mason@oracle.com>
Thu, 25 Sep 2008 15:04:05 +0000 (11:04 -0400)
This is a temporary change to avoid deadlocks until the extent tree locking
is fixed up.

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

index 4036c62b66716b30f7b11cddb1b96895839cdaf7..be2aef1cb7ae131b2f3dcfbde25ecbc3300bb7f4 100644 (file)
@@ -3333,6 +3333,11 @@ int btrfs_read_block_groups(struct btrfs_root *root)
                set_state_private(block_group_cache, found_key.objectid,
                                  (unsigned long)cache);
 
+               /* hack for now */
+               if (cache->flags & BTRFS_BLOCK_GROUP_METADATA) {
+                       cache_block_group(root->fs_info->extent_root,
+                                         cache);
+               }
                if (key.objectid >=
                    btrfs_super_total_bytes(&info->super_copy))
                        break;