2007-12-03 10:27:36

by Aneesh Kumar K.V

[permalink] [raw]
Subject: [PATCH] ext4: Check for the correct error return from ext4_ext_get_blocks

ext4_ext_get_blocks returns negative values on error. We should
check for <= 0

Signed-off-by: Aneesh Kumar K.V <[email protected]>
---
fs/ext4/extents.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index a2475d4..ce57245 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -2558,8 +2558,8 @@ retry:
ret = ext4_ext_get_blocks(handle, inode, block,
max_blocks, &map_bh,
EXT4_CREATE_UNINITIALIZED_EXT, 0);
- WARN_ON(!ret);
- if (!ret) {
+ WARN_ON(ret <= 0);
+ if (ret <= 0) {
ext4_error(inode->i_sb, "ext4_fallocate",
"ext4_ext_get_blocks returned 0! inode#%lu"
", block=%llu, max_blocks=%llu",
--
1.5.3.6.985.g65c6a4-dirty


2007-12-03 15:54:04

by Eric Sandeen

[permalink] [raw]
Subject: Re: [PATCH] ext4: Check for the correct error return from ext4_ext_get_blocks

Aneesh Kumar K.V wrote:
> ext4_ext_get_blocks returns negative values on error. We should
> check for <= 0
>
> Signed-off-by: Aneesh Kumar K.V <[email protected]>
> ---
> fs/ext4/extents.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
> index a2475d4..ce57245 100644
> --- a/fs/ext4/extents.c
> +++ b/fs/ext4/extents.c
> @@ -2558,8 +2558,8 @@ retry:
> ret = ext4_ext_get_blocks(handle, inode, block,
> max_blocks, &map_bh,
> EXT4_CREATE_UNINITIALIZED_EXT, 0);
> - WARN_ON(!ret);
> - if (!ret) {
> + WARN_ON(ret <= 0);
> + if (ret <= 0) {
> ext4_error(inode->i_sb, "ext4_fallocate",
> "ext4_ext_get_blocks returned 0! inode#%lu"
> ", block=%llu, max_blocks=%llu",

Need to change the "returned 0!" part of the error to "returned %d!"
then too, I guess?

-Eric