summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.com>2016-09-08 11:18:24 +0200
committerDavid Sterba <dsterba@suse.com>2016-10-03 11:33:15 +0200
commit257f6979623559319fbd29c63a6e639f92eb1d6f (patch)
treed312ba090c1e5137132dbedee8598dcb71792b13
parent1ed3426d3f74bbbfaab2b77991596644e2e6321d (diff)
btrfs-progs: check: handle errors returned by add_extent_rec_nolookup
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r--cmds-check.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/cmds-check.c b/cmds-check.c
index e7864919..611f8016 100644
--- a/cmds-check.c
+++ b/cmds-check.c
@@ -4766,6 +4766,7 @@ static int add_tree_backref(struct cache_tree *extent_cache, u64 bytenr,
struct extent_record *rec;
struct tree_backref *back;
struct cache_extent *cache;
+ int ret;
cache = lookup_cache_extent(extent_cache, bytenr, 1);
if (!cache) {
@@ -4776,7 +4777,9 @@ static int add_tree_backref(struct cache_tree *extent_cache, u64 bytenr,
tmpl.nr = 1;
tmpl.metadata = 1;
- add_extent_rec_nolookup(extent_cache, &tmpl);
+ ret = add_extent_rec_nolookup(extent_cache, &tmpl);
+ if (ret)
+ return ret;
/* really a bug in cache_extent implement now */
cache = lookup_cache_extent(extent_cache, bytenr, 1);
@@ -4830,6 +4833,7 @@ static int add_data_backref(struct cache_tree *extent_cache, u64 bytenr,
struct extent_record *rec;
struct data_backref *back;
struct cache_extent *cache;
+ int ret;
cache = lookup_cache_extent(extent_cache, bytenr, 1);
if (!cache) {
@@ -4840,7 +4844,9 @@ static int add_data_backref(struct cache_tree *extent_cache, u64 bytenr,
tmpl.nr = 1;
tmpl.max_size = max_size;
- add_extent_rec_nolookup(extent_cache, &tmpl);
+ ret = add_extent_rec_nolookup(extent_cache, &tmpl);
+ if (ret)
+ return ret;
cache = lookup_cache_extent(extent_cache, bytenr, 1);
if (!cache)