X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=send-utils.c;h=b5289e76ae9d59015101cda0be8b67611ce12f27;hb=9005b603d7230a92d0623cb8d8078a8845739fca;hp=95445b58560a54a4a07a718a289f1411e89b1326;hpb=ee518036d2cdf58d562b9448e3c062d5653c0d34;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/send-utils.c b/send-utils.c index 95445b5..b5289e7 100644 --- a/send-utils.c +++ b/send-utils.c @@ -83,8 +83,7 @@ static int btrfs_read_root_item_raw(int mnt_fd, u64 root_id, size_t buf_len, ret = ioctl(mnt_fd, BTRFS_IOC_TREE_SEARCH, &args); if (ret < 0) { fprintf(stderr, - "ERROR: can't perform the search - %s\n", - strerror(errno)); + "ERROR: can't perform the search - %m\n"); return 0; } /* the ioctl returns the number of item it found in nr_items */ @@ -267,8 +266,8 @@ static int btrfs_subvolid_resolve_sub(int fd, char *path, size_t *path_len, ret = ioctl(fd, BTRFS_IOC_TREE_SEARCH, &search_arg); if (ret < 0) { fprintf(stderr, - "ioctl(BTRFS_IOC_TREE_SEARCH, subvol_id %llu) ret=%d, error: %s\n", - (unsigned long long)subvol_id, ret, strerror(errno)); + "ioctl(BTRFS_IOC_TREE_SEARCH, subvol_id %llu) ret=%d, error: %m\n", + (unsigned long long)subvol_id, ret); return ret; } @@ -306,8 +305,8 @@ static int btrfs_subvolid_resolve_sub(int fd, char *path, size_t *path_len, ret = ioctl(fd, BTRFS_IOC_INO_LOOKUP, &ino_lookup_arg); if (ret < 0) { fprintf(stderr, - "ioctl(BTRFS_IOC_INO_LOOKUP) ret=%d, error: %s\n", - ret, strerror(errno)); + "ioctl(BTRFS_IOC_INO_LOOKUP) ret=%d, error: %m\n", + ret); return ret; } @@ -439,6 +438,19 @@ struct subvol_info *subvol_uuid_search(struct subvol_uuid_search *s, 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; struct subvol_info *info = NULL; @@ -488,6 +500,10 @@ struct subvol_info *subvol_uuid_search(struct subvol_uuid_search *s, info->rtransid = btrfs_root_rtransid(&root_item); if (type == subvol_search_by_path) { info->path = strdup(path); + if (!info->path) { + ret = -ENOMEM; + goto out; + } } else { info->path = malloc(PATH_MAX); if (!info->path) { @@ -569,8 +585,7 @@ int subvol_uuid_search_init(int mnt_fd, struct subvol_uuid_search *s) ret = is_uuid_tree_supported(mnt_fd); if (ret < 0) { fprintf(stderr, - "ERROR: check if we support uuid tree fails - %s\n", - strerror(errno)); + "ERROR: check if we support uuid tree fails - %m\n"); return ret; } else if (ret) { /* uuid tree is supported */ @@ -591,8 +606,7 @@ int subvol_uuid_search_init(int mnt_fd, struct subvol_uuid_search *s) while (1) { ret = ioctl(mnt_fd, BTRFS_IOC_TREE_SEARCH, &args); if (ret < 0) { - fprintf(stderr, "ERROR: can't perform the search - %s\n", - strerror(errno)); + fprintf(stderr, "ERROR: can't perform the search - %m\n"); return ret; } if (sk->nr_items == 0)