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
@@ -182,7 +182,7 @@ struct scrub_dev *scrub_setup_dev(struct btrfs_device *dev)
|
||||
sdev->curr = -1;
|
||||
atomic_set(&sdev->in_flight, 0);
|
||||
atomic_set(&sdev->cancel_req, 0);
|
||||
sdev->csum_size = btrfs_super_csum_size(&fs_info->super_copy);
|
||||
sdev->csum_size = btrfs_super_csum_size(fs_info->super_copy);
|
||||
INIT_LIST_HEAD(&sdev->csum_list);
|
||||
|
||||
spin_lock_init(&sdev->list_lock);
|
||||
|
Reference in New Issue
Block a user