summaryrefslogtreecommitdiff
path: root/cmds-check.c
diff options
context:
space:
mode:
authorEryu Guan <guaneryu@gmail.com>2015-10-19 19:37:51 +0800
committerDavid Sterba <dsterba@suse.com>2015-11-02 09:35:02 +0100
commit529f5c585430e6ba3ee4d630918e9b958a44d7bb (patch)
tree44ced57b8b778c99dcf450f673791d1369a1e72e /cmds-check.c
parent380b1c8ced887bbaa655f863390b5a855e98fb7f (diff)
downloadbtrfs-progs-529f5c585430e6ba3ee4d630918e9b958a44d7bb.tar.gz
btrfs-progs: save and return error number correctly in check_chunks_and_extents
The variable "err" is assigned to "ret" then "ret" gets overwritten by check_extent_refs() before "ret" can be used. Reported by Coverity. Signed-off-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'cmds-check.c')
-rw-r--r--cmds-check.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/cmds-check.c b/cmds-check.c
index 1f8caad..bd05b7e 100644
--- a/cmds-check.c
+++ b/cmds-check.c
@@ -8195,13 +8195,12 @@ again:
goto out;
}
- err = check_chunks(&chunk_cache, &block_group_cache,
+ ret = check_chunks(&chunk_cache, &block_group_cache,
&dev_extent_cache, NULL, NULL, NULL, 0);
- if (err) {
- if (err == -EAGAIN)
+ if (ret) {
+ if (ret == -EAGAIN)
goto loop;
- if (!ret)
- ret = err;
+ err = ret;
}
ret = check_extent_refs(root, &extent_cache);
@@ -8211,8 +8210,8 @@ again:
goto out;
}
- err = check_devices(&dev_cache, &dev_extent_cache);
- if (err && !ret)
+ ret = check_devices(&dev_cache, &dev_extent_cache);
+ if (ret && err)
ret = err;
out: