mirror of
https://github.com/kdave/btrfs-progs
synced 2024-12-23 22:53:35 +00:00
Btrfs-progs: add a function to free subvol_uuid_search memory
There was no way to free the memory that was used for the subvol_uuid_search functions. Since this is part of the libbtrfs, add such a cleanup function. Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
This commit is contained in:
parent
a3ed81c5e9
commit
9b1daecf17
23
send-utils.c
23
send-utils.c
@ -304,6 +304,29 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* It's safe to call this function even without the subvol_uuid_search_init()
|
||||
* call before as long as the subvol_uuid_search structure is all-zero.
|
||||
*/
|
||||
void subvol_uuid_search_finit(struct subvol_uuid_search *s)
|
||||
{
|
||||
struct rb_root *root = &s->root_id_subvols;
|
||||
struct rb_node *node;
|
||||
|
||||
while ((node = rb_first(root))) {
|
||||
struct subvol_info *entry =
|
||||
rb_entry(node, struct subvol_info, rb_root_id_node);
|
||||
|
||||
free(entry->path);
|
||||
rb_erase(node, root);
|
||||
free(entry);
|
||||
}
|
||||
|
||||
s->root_id_subvols = RB_ROOT;
|
||||
s->local_subvols = RB_ROOT;
|
||||
s->received_subvols = RB_ROOT;
|
||||
s->path_subvols = RB_ROOT;
|
||||
}
|
||||
|
||||
char *path_cat(const char *p1, const char *p2)
|
||||
{
|
||||
|
@ -62,6 +62,7 @@ struct subvol_uuid_search {
|
||||
};
|
||||
|
||||
int subvol_uuid_search_init(int mnt_fd, struct subvol_uuid_search *s);
|
||||
void subvol_uuid_search_finit(struct subvol_uuid_search *s);
|
||||
struct subvol_info *subvol_uuid_search(struct subvol_uuid_search *s,
|
||||
u64 root_id, const u8 *uuid, u64 transid,
|
||||
const char *path,
|
||||
|
Loading…
Reference in New Issue
Block a user