* [PATCH V1 1/2] Ext2: return ENOMEM rather than EIO if sb_getblk fails
@ 2013-01-13 10:44 Wang shilong
2013-01-14 14:25 ` Jan Kara
0 siblings, 1 reply; 2+ messages in thread
From: Wang shilong @ 2013-01-13 10:44 UTC (permalink / raw)
To: jack; +Cc: linux-fsdevel, linux-ext4, Wang shilong, Wang Shilong
From: Wang Shilong <wangsl-fnst@cn.fujitsu.com>
As the only reason that sb_getblk fails is that allocation fails.
It will be better to use ENOMEM rather than EIO.
Signed-off-by: Wang Shilong <wangsl-fnst@cn.fujitsu.com>
---
fs/ext2/super.c | 2 +-
fs/ext2/xattr.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index 663fdcd..3308a55 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -1457,7 +1457,7 @@ static ssize_t ext2_quota_write(struct super_block *sb, int type,
else
bh = sb_getblk(sb, tmp_bh.b_blocknr);
if (unlikely(!bh)) {
- err = -EIO;
+ err = -ENOMEM;
goto out;
}
lock_buffer(bh);
diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c
index 06209ec..2d7557d 100644
--- a/fs/ext2/xattr.c
+++ b/fs/ext2/xattr.c
@@ -665,7 +665,7 @@ ext2_xattr_set2(struct inode *inode, struct buffer_head *old_bh,
if (unlikely(!new_bh)) {
ext2_free_blocks(inode, block, 1);
mark_inode_dirty(inode);
- error = -EIO;
+ error = -ENOMEM;
goto cleanup;
}
lock_buffer(new_bh);
--
1.7.11.7
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH V1 1/2] Ext2: return ENOMEM rather than EIO if sb_getblk fails
2013-01-13 10:44 [PATCH V1 1/2] Ext2: return ENOMEM rather than EIO if sb_getblk fails Wang shilong
@ 2013-01-14 14:25 ` Jan Kara
0 siblings, 0 replies; 2+ messages in thread
From: Jan Kara @ 2013-01-14 14:25 UTC (permalink / raw)
To: Wang shilong; +Cc: jack, linux-fsdevel, linux-ext4, Wang Shilong
On Sun 13-01-13 18:44:06, Wang shilong wrote:
> From: Wang Shilong <wangsl-fnst@cn.fujitsu.com>
>
> As the only reason that sb_getblk fails is that allocation fails.
> It will be better to use ENOMEM rather than EIO.
>
> Signed-off-by: Wang Shilong <wangsl-fnst@cn.fujitsu.com>
> ---
> fs/ext2/super.c | 2 +-
> fs/ext2/xattr.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/ext2/super.c b/fs/ext2/super.c
> index 663fdcd..3308a55 100644
> --- a/fs/ext2/super.c
> +++ b/fs/ext2/super.c
> @@ -1457,7 +1457,7 @@ static ssize_t ext2_quota_write(struct super_block *sb, int type,
> else
> bh = sb_getblk(sb, tmp_bh.b_blocknr);
> if (unlikely(!bh)) {
> - err = -EIO;
> + err = -ENOMEM;
This is actually wrong. sb_bread() can return NULL in case of IO error as
well as in case of ENOMEM. In theory you could split the error check for
the sb_getblk() and sb_bread() branch but I prefer not to bother...
Honza
> goto out;
> }
> lock_buffer(bh);
> diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c
> index 06209ec..2d7557d 100644
> --- a/fs/ext2/xattr.c
> +++ b/fs/ext2/xattr.c
> @@ -665,7 +665,7 @@ ext2_xattr_set2(struct inode *inode, struct buffer_head *old_bh,
> if (unlikely(!new_bh)) {
> ext2_free_blocks(inode, block, 1);
> mark_inode_dirty(inode);
> - error = -EIO;
> + error = -ENOMEM;
> goto cleanup;
> }
> lock_buffer(new_bh);
> --
> 1.7.11.7
>
--
Jan Kara <jack@suse.cz>
SUSE Labs, CR
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-01-14 14:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-13 10:44 [PATCH V1 1/2] Ext2: return ENOMEM rather than EIO if sb_getblk fails Wang shilong
2013-01-14 14:25 ` Jan Kara
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).