diff options
author | Wang Shilong <wangsl-fnst@cn.fujitsu.com> | 2013-01-16 00:20:01 -0500 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2013-01-21 05:19:57 -0500 |
commit | c04e88e271ab67de1409c3b4a4e80dbe13eac7b0 (patch) | |
tree | 31c46c27fedef5d19cecaaccf2abdd2e0a00c981 /fs/ext3 | |
parent | ab6a773dbcbd2bba3ead8676ae21ce5adbbdc035 (diff) |
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>
Diffstat (limited to 'fs/ext3')
-rw-r--r-- | fs/ext3/inode.c | 4 | ||||
-rw-r--r-- | fs/ext3/resize.c | 6 | ||||
-rw-r--r-- | fs/ext3/xattr.c | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c index d7df06839f6a..d512c4bc4ad7 100644 --- a/fs/ext3/inode.c +++ b/fs/ext3/inode.c | |||
@@ -1083,7 +1083,7 @@ struct buffer_head *ext3_getblk(handle_t *handle, struct inode *inode, | |||
1083 | struct buffer_head *bh; | 1083 | struct buffer_head *bh; |
1084 | bh = sb_getblk(inode->i_sb, dummy.b_blocknr); | 1084 | bh = sb_getblk(inode->i_sb, dummy.b_blocknr); |
1085 | if (unlikely(!bh)) { | 1085 | if (unlikely(!bh)) { |
1086 | *errp = -EIO; | 1086 | *errp = -ENOMEM; |
1087 | goto err; | 1087 | goto err; |
1088 | } | 1088 | } |
1089 | if (buffer_new(&dummy)) { | 1089 | if (buffer_new(&dummy)) { |
@@ -2738,7 +2738,7 @@ static int __ext3_get_inode_loc(struct inode *inode, | |||
2738 | "unable to read inode block - " | 2738 | "unable to read inode block - " |
2739 | "inode=%lu, block="E3FSBLK, | 2739 | "inode=%lu, block="E3FSBLK, |
2740 | inode->i_ino, block); | 2740 | inode->i_ino, block); |
2741 | return -EIO; | 2741 | return -ENOMEM; |
2742 | } | 2742 | } |
2743 | if (!buffer_uptodate(bh)) { | 2743 | if (!buffer_uptodate(bh)) { |
2744 | lock_buffer(bh); | 2744 | lock_buffer(bh); |
diff --git a/fs/ext3/resize.c b/fs/ext3/resize.c index 704e8ce7d782..27105655502c 100644 --- a/fs/ext3/resize.c +++ b/fs/ext3/resize.c | |||
@@ -117,7 +117,7 @@ static struct buffer_head *bclean(handle_t *handle, struct super_block *sb, | |||
117 | 117 | ||
118 | bh = sb_getblk(sb, blk); | 118 | bh = sb_getblk(sb, blk); |
119 | if (unlikely(!bh)) | 119 | if (unlikely(!bh)) |
120 | return ERR_PTR(-EIO); | 120 | return ERR_PTR(-ENOMEM); |
121 | if ((err = ext3_journal_get_write_access(handle, bh))) { | 121 | if ((err = ext3_journal_get_write_access(handle, bh))) { |
122 | brelse(bh); | 122 | brelse(bh); |
123 | bh = ERR_PTR(err); | 123 | bh = ERR_PTR(err); |
@@ -235,7 +235,7 @@ static int setup_new_group_blocks(struct super_block *sb, | |||
235 | 235 | ||
236 | gdb = sb_getblk(sb, block); | 236 | gdb = sb_getblk(sb, block); |
237 | if (unlikely(!gdb)) { | 237 | if (unlikely(!gdb)) { |
238 | err = -EIO; | 238 | err = -ENOMEM; |
239 | goto exit_bh; | 239 | goto exit_bh; |
240 | } | 240 | } |
241 | if ((err = ext3_journal_get_write_access(handle, gdb))) { | 241 | if ((err = ext3_journal_get_write_access(handle, gdb))) { |
@@ -723,7 +723,7 @@ static void update_backups(struct super_block *sb, | |||
723 | 723 | ||
724 | bh = sb_getblk(sb, group * bpg + blk_off); | 724 | bh = sb_getblk(sb, group * bpg + blk_off); |
725 | if (unlikely(!bh)) { | 725 | if (unlikely(!bh)) { |
726 | err = -EIO; | 726 | err = -ENOMEM; |
727 | break; | 727 | break; |
728 | } | 728 | } |
729 | ext3_debug("update metadata backup %#04lx\n", | 729 | ext3_debug("update metadata backup %#04lx\n", |
diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c index 9f57470b1727..b1fc96383e08 100644 --- a/fs/ext3/xattr.c +++ b/fs/ext3/xattr.c | |||
@@ -816,7 +816,7 @@ inserted: | |||
816 | if (unlikely(!new_bh)) { | 816 | if (unlikely(!new_bh)) { |
817 | getblk_failed: | 817 | getblk_failed: |
818 | ext3_free_blocks(handle, inode, block, 1); | 818 | ext3_free_blocks(handle, inode, block, 1); |
819 | error = -EIO; | 819 | error = -ENOMEM; |
820 | goto cleanup; | 820 | goto cleanup; |
821 | } | 821 | } |
822 | lock_buffer(new_bh); | 822 | lock_buffer(new_bh); |