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,
|
u64 root_id, const u8 *uuid, u64 transid,
|
||||||
const char *path,
|
const char *path,
|
||||||
enum subvol_search_type type)
|
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;
|
int ret = 0;
|
||||||
struct btrfs_root_item root_item;
|
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);
|
int subvol_uuid_search_init(int mnt_fd, struct subvol_uuid_search *s);
|
||||||
void subvol_uuid_search_finit(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,
|
struct subvol_info *subvol_uuid_search(struct subvol_uuid_search *s,
|
||||||
u64 root_id, const u8 *uuid, u64 transid,
|
u64 root_id, const u8 *uuid, u64 transid,
|
||||||
const char *path,
|
const char *path,
|
||||||
enum subvol_search_type type);
|
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,
|
void subvol_uuid_search_add(struct subvol_uuid_search *s,
|
||||||
struct subvol_info *si);
|
struct subvol_info *si);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue