Skip to content

Commit c57ab39

Browse files
iamreadytootytso
authored andcommitted
ext4: return ENOMEM rather than EIO when find_###_page() fails
Return ENOMEM rather than EIO when find_get_page() fails in ext4_mb_get_buddy_page_lock() and find_or_create_page() fails in ext4_mb_load_buddy(). Signed-off-by: Younger Liu <[email protected]> Signed-off-by: "Theodore Ts'o" <[email protected]>
1 parent 1ce01c4 commit c57ab39

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

fs/ext4/mballoc.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -989,7 +989,7 @@ static int ext4_mb_get_buddy_page_lock(struct super_block *sb,
989989
poff = block % blocks_per_page;
990990
page = find_or_create_page(inode->i_mapping, pnum, GFP_NOFS);
991991
if (!page)
992-
return -EIO;
992+
return -ENOMEM;
993993
BUG_ON(page->mapping != inode->i_mapping);
994994
e4b->bd_bitmap_page = page;
995995
e4b->bd_bitmap = page_address(page) + (poff * sb->s_blocksize);
@@ -1003,7 +1003,7 @@ static int ext4_mb_get_buddy_page_lock(struct super_block *sb,
10031003
pnum = block / blocks_per_page;
10041004
page = find_or_create_page(inode->i_mapping, pnum, GFP_NOFS);
10051005
if (!page)
1006-
return -EIO;
1006+
return -ENOMEM;
10071007
BUG_ON(page->mapping != inode->i_mapping);
10081008
e4b->bd_buddy_page = page;
10091009
return 0;
@@ -1168,7 +1168,11 @@ ext4_mb_load_buddy(struct super_block *sb, ext4_group_t group,
11681168
unlock_page(page);
11691169
}
11701170
}
1171-
if (page == NULL || !PageUptodate(page)) {
1171+
if (page == NULL) {
1172+
ret = -ENOMEM;
1173+
goto err;
1174+
}
1175+
if (!PageUptodate(page)) {
11721176
ret = -EIO;
11731177
goto err;
11741178
}
@@ -1197,7 +1201,11 @@ ext4_mb_load_buddy(struct super_block *sb, ext4_group_t group,
11971201
unlock_page(page);
11981202
}
11991203
}
1200-
if (page == NULL || !PageUptodate(page)) {
1204+
if (page == NULL) {
1205+
ret = -ENOMEM;
1206+
goto err;
1207+
}
1208+
if (!PageUptodate(page)) {
12011209
ret = -EIO;
12021210
goto err;
12031211
}

0 commit comments

Comments
 (0)