diff options
author | Eryu Guan <guaneryu@gmail.com> | 2015-10-19 19:37:51 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2015-11-02 09:35:02 +0100 |
commit | 529f5c585430e6ba3ee4d630918e9b958a44d7bb (patch) | |
tree | 44ced57b8b778c99dcf450f673791d1369a1e72e /cmds-check.c | |
parent | 380b1c8ced887bbaa655f863390b5a855e98fb7f (diff) | |
download | btrfs-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.c | 13 |
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: |