From 529f5c585430e6ba3ee4d630918e9b958a44d7bb Mon Sep 17 00:00:00 2001 From: Eryu Guan Date: Mon, 19 Oct 2015 19:37:51 +0800 Subject: 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 Signed-off-by: David Sterba --- cmds-check.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'cmds-check.c') diff --git a/cmds-check.c b/cmds-check.c index 1f8caad4..bd05b7ed 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: -- cgit v1.2.3