mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-08 15:04:45 +00:00
ext4: do not destroy ext4_groupinfo_caches if ext4_mb_init() fails
Caches from 'ext4_groupinfo_caches' may be in use by other mounts, which have already existed. So, it is incorrect to destroy them when newly requested mount fails. Found by Linux File System Verification project (linuxtesting.org). Signed-off-by: Andrey Tsyvarev <tsyvarev@ispras.ru> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Reviewed-by: Lukas Czerner <lczerner@redhat.com>
This commit is contained in:
parent
c197855ea1
commit
029b10c5a8
@ -2617,7 +2617,7 @@ int ext4_mb_init(struct super_block *sb)
|
||||
sbi->s_locality_groups = alloc_percpu(struct ext4_locality_group);
|
||||
if (sbi->s_locality_groups == NULL) {
|
||||
ret = -ENOMEM;
|
||||
goto out_free_groupinfo_slab;
|
||||
goto out;
|
||||
}
|
||||
for_each_possible_cpu(i) {
|
||||
struct ext4_locality_group *lg;
|
||||
@ -2642,8 +2642,6 @@ int ext4_mb_init(struct super_block *sb)
|
||||
out_free_locality_groups:
|
||||
free_percpu(sbi->s_locality_groups);
|
||||
sbi->s_locality_groups = NULL;
|
||||
out_free_groupinfo_slab:
|
||||
ext4_groupinfo_destroy_slabs();
|
||||
out:
|
||||
kfree(sbi->s_mb_offsets);
|
||||
sbi->s_mb_offsets = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user