btrfs-progs: check: make max_size consistent with nr
authorChristophe de Dinechin <dinechin@redhat.com>
Fri, 28 Apr 2017 09:51:21 +0000 (11:51 +0200)
committerDavid Sterba <dsterba@suse.com>
Tue, 2 May 2017 17:01:50 +0000 (19:01 +0200)
Since we memset tmpl, max_size==0. This does not seem consistent with nr = 1.
In check_extent_refs, we will call:

  set_extent_dirty(root->fs_info->excluded_extents,
                   rec->start,
                   rec->start + rec->max_size - 1);

This ends up with BUG_ON(end < start) in insert_state.

Signed-off-by: Christophe de Dinechin <dinechin@redhat.com>
Signed-off-by: David Sterba <dsterba@suse.com>
cmds-check.c

index 571bd4e..afa7823 100644 (file)
@@ -6194,6 +6194,7 @@ static int add_tree_backref(struct cache_tree *extent_cache, u64 bytenr,
                tmpl.start = bytenr;
                tmpl.nr = 1;
                tmpl.metadata = 1;
+               tmpl.max_size = 1;
 
                ret = add_extent_rec_nolookup(extent_cache, &tmpl);
                if (ret)