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);
* DEPRECATED: the functions path_cat and path_cat3 are unsafe and should not
* be used, use the _out variants and always check the return code.
*/
-__attribute__((deprecated("please use path_cat_out")))
+__attribute__((deprecated))
char *path_cat(const char *p1, const char *p2);
-__attribute__((deprecated("please use path_cat3_out")))
+__attribute__((deprecated))
char *path_cat3(const char *p1, const char *p2, const char *p3);
int path_cat_out(char *out, const char *p1, const char *p2);