Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Ext3: return ENOMEM rather than EIO if sb_getblk fails

It will be better to use ENOMEM rather than EIO, because the only
reason that sb_getblk fails is that allocation fails.

Signed-off-by: Wang Shilong <wangsl-fnst@cn.fujitsu.com>
Signed-off-by: Jan Kara <jack@suse.cz>

authored by

Wang Shilong and committed by
Jan Kara
c04e88e2 ab6a773d

+6 -6
+2 -2
fs/ext3/inode.c
··· 1083 1083 struct buffer_head *bh; 1084 1084 bh = sb_getblk(inode->i_sb, dummy.b_blocknr); 1085 1085 if (unlikely(!bh)) { 1086 - *errp = -EIO; 1086 + *errp = -ENOMEM; 1087 1087 goto err; 1088 1088 } 1089 1089 if (buffer_new(&dummy)) { ··· 2738 2738 "unable to read inode block - " 2739 2739 "inode=%lu, block="E3FSBLK, 2740 2740 inode->i_ino, block); 2741 - return -EIO; 2741 + return -ENOMEM; 2742 2742 } 2743 2743 if (!buffer_uptodate(bh)) { 2744 2744 lock_buffer(bh);
+3 -3
fs/ext3/resize.c
··· 117 117 118 118 bh = sb_getblk(sb, blk); 119 119 if (unlikely(!bh)) 120 - return ERR_PTR(-EIO); 120 + return ERR_PTR(-ENOMEM); 121 121 if ((err = ext3_journal_get_write_access(handle, bh))) { 122 122 brelse(bh); 123 123 bh = ERR_PTR(err); ··· 235 235 236 236 gdb = sb_getblk(sb, block); 237 237 if (unlikely(!gdb)) { 238 - err = -EIO; 238 + err = -ENOMEM; 239 239 goto exit_bh; 240 240 } 241 241 if ((err = ext3_journal_get_write_access(handle, gdb))) { ··· 723 723 724 724 bh = sb_getblk(sb, group * bpg + blk_off); 725 725 if (unlikely(!bh)) { 726 - err = -EIO; 726 + err = -ENOMEM; 727 727 break; 728 728 } 729 729 ext3_debug("update metadata backup %#04lx\n",
+1 -1
fs/ext3/xattr.c
··· 816 816 if (unlikely(!new_bh)) { 817 817 getblk_failed: 818 818 ext3_free_blocks(handle, inode, block, 1); 819 - error = -EIO; 819 + error = -ENOMEM; 820 820 goto cleanup; 821 821 } 822 822 lock_buffer(new_bh);