btrfs-progs: fixup API after change in subvol_uuid_search
The return value fix to subvol_uuid_search changes the API semantics, we must keep it compatible, so we introduce a v2 interface that returns the negative error value in case of error. Library version bump will follow. Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
ee518036d2
commit
87e4233ef0
13
send-utils.c
13
send-utils.c
|
@ -438,6 +438,19 @@ struct subvol_info *subvol_uuid_search(struct subvol_uuid_search *s,
|
|||
u64 root_id, const u8 *uuid, u64 transid,
|
||||
const char *path,
|
||||
enum subvol_search_type type)
|
||||
{
|
||||
struct subvol_info *si;
|
||||
|
||||
si = subvol_uuid_search2(s, root_id, uuid, transid, path, type);
|
||||
if (IS_ERR(si))
|
||||
return NULL;
|
||||
return si;
|
||||
}
|
||||
|
||||
struct subvol_info *subvol_uuid_search2(struct subvol_uuid_search *s,
|
||||
u64 root_id, const u8 *uuid, u64 transid,
|
||||
const char *path,
|
||||
enum subvol_search_type type)
|
||||
{
|
||||
int ret = 0;
|
||||
struct btrfs_root_item root_item;
|
||||
|
|
15
send-utils.h
15
send-utils.h
|
@ -80,10 +80,25 @@ 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);
|
||||
/*
|
||||
* Search for a subvolume by given type (received uuid, root id, path), returns
|
||||
* pointer to newly allocated struct subvol_info or NULL in case it's not found
|
||||
* or there was another error. This ambiguity of error value is fixed by
|
||||
* subvol_uuid_search2 that returns a negative errno in case of an error, of a
|
||||
* valid pointer otherwise.
|
||||
*
|
||||
* This function will be deprecated in the future, please consider using v2 in
|
||||
* new code unless you need to keep backward compatibility with older
|
||||
* btrfs-progs.
|
||||
*/
|
||||
struct subvol_info *subvol_uuid_search(struct subvol_uuid_search *s,
|
||||
u64 root_id, const u8 *uuid, u64 transid,
|
||||
const char *path,
|
||||
enum subvol_search_type type);
|
||||
struct subvol_info *subvol_uuid_search2(struct subvol_uuid_search *s,
|
||||
u64 root_id, const u8 *uuid, u64 transid,
|
||||
const char *path,
|
||||
enum subvol_search_type type);
|
||||
void subvol_uuid_search_add(struct subvol_uuid_search *s,
|
||||
struct subvol_info *si);
|
||||
|
||||
|
|
Loading…
Reference in New Issue