diff options
author | David Sterba <dsterba@suse.com> | 2017-10-20 01:11:11 +0200 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2017-11-14 15:59:00 +0100 |
commit | 5d64cd80fe50ea6aa3d3184805098dd3481d2286 (patch) | |
tree | fce56eb815a4af03eecdaa765ca2eb35a4aa0f64 | |
parent | 94901ebf39180a6072e8bf682dc61d6bc07ccc4b (diff) |
btrfs-progs: image: pass sanitize mode and name tree separately to sanitize_inode_ref
We don't need the full mdrestore structure.
Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r-- | image/main.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/image/main.c b/image/main.c index a5777dd7..8804c733 100644 --- a/image/main.c +++ b/image/main.c @@ -548,8 +548,9 @@ static void sanitize_dir_item(struct metadump_struct *md, struct extent_buffer * } } -static void sanitize_inode_ref(struct metadump_struct *md, - struct extent_buffer *eb, int slot, int ext) +static void sanitize_inode_ref(enum sanitize_mode sanitize, + struct rb_root *name_tree, struct extent_buffer *eb, int slot, + int ext) { struct btrfs_inode_extref *extref; struct btrfs_inode_ref *ref; @@ -559,7 +560,7 @@ static void sanitize_inode_ref(struct metadump_struct *md, u32 item_size; u32 cur_offset = 0; int len; - int free_garbage = (md->sanitize_names == SANITIZE_NAMES); + int free_garbage = (sanitize == SANITIZE_NAMES); item_size = btrfs_item_size_nr(eb, slot); ptr = btrfs_item_ptr_offset(eb, slot); @@ -578,14 +579,14 @@ static void sanitize_inode_ref(struct metadump_struct *md, } cur_offset += len; - if (md->sanitize_names == SANITIZE_COLLISIONS) { + if (sanitize == SANITIZE_COLLISIONS) { buf = malloc(len); if (!buf) { error("cannot sanitize name, not enough memory"); return; } read_extent_buffer(eb, buf, name_ptr, len); - garbage = find_collision(&md->name_tree, buf, len); + garbage = find_collision(name_tree, buf, len); } else { garbage = generate_garbage(len); } @@ -634,10 +635,12 @@ static void sanitize_name(struct metadump_struct *md, u8 *dst, sanitize_dir_item(md, eb, slot); break; case BTRFS_INODE_REF_KEY: - sanitize_inode_ref(md, eb, slot, 0); + sanitize_inode_ref(md->sanitize_names, &md->name_tree, eb, slot, + 0); break; case BTRFS_INODE_EXTREF_KEY: - sanitize_inode_ref(md, eb, slot, 1); + sanitize_inode_ref(md->sanitize_names, &md->name_tree, eb, slot, + 1); break; case BTRFS_XATTR_ITEM_KEY: sanitize_xattr(eb, slot); |