summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChengguang Xu <cgxu519@gmx.com>2019-01-01 21:30:28 +0800
committerJan Kara <jack@suse.cz>2019-01-22 11:38:15 +0100
commit6a03e6a8dcf573dcb1621b50d6bfd2e1fa2bd8c0 (patch)
treee2eeccbd3a83b850cc804363de51621981aa2ed5
parent49a57857aeea06ca831043acbb0fa5e0f50602fd (diff)
downloadlinux-stable-6a03e6a8dcf573dcb1621b50d6bfd2e1fa2bd8c0.tar.gz
linux-stable-6a03e6a8dcf573dcb1621b50d6bfd2e1fa2bd8c0.tar.bz2
linux-stable-6a03e6a8dcf573dcb1621b50d6bfd2e1fa2bd8c0.zip
ext2: set proper return code
Set proper return code when failing from allocating memory in ext2_fill_super(). Signed-off-by: Chengguang Xu <cgxu519@gmx.com> Signed-off-by: Jan Kara <jack@suse.cz>
-rw-r--r--fs/ext2/super.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index 73b2d528237f..b6d8402f5c62 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -1087,12 +1087,14 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
sizeof(struct buffer_head *),
GFP_KERNEL);
if (sbi->s_group_desc == NULL) {
+ ret = -ENOMEM;
ext2_msg(sb, KERN_ERR, "error: not enough memory");
goto failed_mount;
}
bgl_lock_init(sbi->s_blockgroup_lock);
sbi->s_debts = kcalloc(sbi->s_groups_count, sizeof(*sbi->s_debts), GFP_KERNEL);
if (!sbi->s_debts) {
+ ret = -ENOMEM;
ext2_msg(sb, KERN_ERR, "error: not enough memory");
goto failed_mount_group_desc;
}
@@ -1148,6 +1150,7 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
#ifdef CONFIG_EXT2_FS_XATTR
sbi->s_ea_block_cache = ext2_xattr_create_cache();
if (!sbi->s_ea_block_cache) {
+ ret = -ENOMEM;
ext2_msg(sb, KERN_ERR, "Failed to create ea_block_cache");
goto failed_mount3;
}