btrfs-progs: check: handle errors returned by add_extent_rec_nolookup
authorDavid Sterba <dsterba@suse.com>
Thu, 8 Sep 2016 09:18:24 +0000 (11:18 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 3 Oct 2016 09:33:15 +0000 (11:33 +0200)
Signed-off-by: David Sterba <dsterba@suse.com>
cmds-check.c

index e786491..611f801 100644 (file)
@@ -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)