X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=send-utils.h;h=e8f86912b246b7df942b23025691f95e0f2a8bc0;hb=ee76a212a8027ce876dd2c17e1d10b99bdeb9877;hp=0f38b5adec933ee24e5166b5b601ac3db55d6155;hpb=07ce7005fc81289eb4c7dde7d601be08c977b92c;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/send-utils.h b/send-utils.h index 0f38b5a..e8f8691 100644 --- a/send-utils.h +++ b/send-utils.h @@ -20,9 +20,11 @@ #define __BTRFS_SEND_UTILS_H__ #if BTRFS_FLAT_INCLUDES +#include "kerncompat.h" #include "ctree.h" #include "rbtree.h" #else +#include #include #include #endif /* BTRFS_FLAT_INCLUDES */ @@ -78,18 +80,42 @@ 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); int btrfs_subvolid_resolve(int fd, char *path, size_t path_len, u64 subvol_id); +/* + * 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)) char *path_cat(const char *p1, const char *p2); +__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); +int path_cat3_out(char *out, const char *p1, const char *p2, const char *p3); + #ifdef __cplusplus } #endif