btrfs: separate superblock items out of fs_info
fs_info has now ~9kb, more than fits into one page. This will cause mount failure when memory is too fragmented. Top space consumers are super block structures super_copy and super_for_commit, ~2.8kb each. Allocate them dynamically. fs_info will be ~3.5kb. (measured on x86_64) Add a wrapper for freeing fs_info and all of it's dynamically allocated members. Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
committed by
Chris Mason
parent
c8174313a8
commit
6c41761fc6
@ -2118,9 +2118,9 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans,
|
||||
BUG_ON(ret);
|
||||
btrfs_wait_marked_extents(log, &log->dirty_log_pages, mark);
|
||||
|
||||
btrfs_set_super_log_root(&root->fs_info->super_for_commit,
|
||||
btrfs_set_super_log_root(root->fs_info->super_for_commit,
|
||||
log_root_tree->node->start);
|
||||
btrfs_set_super_log_root_level(&root->fs_info->super_for_commit,
|
||||
btrfs_set_super_log_root_level(root->fs_info->super_for_commit,
|
||||
btrfs_header_level(log_root_tree->node));
|
||||
|
||||
log_root_tree->log_batch = 0;
|
||||
|
Reference in New Issue
Block a user