|
@@ -355,7 +355,7 @@ int part_get_info(struct blk_desc *dev_desc, int part,
|
|
|
}
|
|
|
#endif /* CONFIG_HAVE_BLOCK_DEVICE */
|
|
|
|
|
|
- return -1;
|
|
|
+ return -ENOENT;
|
|
|
}
|
|
|
|
|
|
int part_get_info_whole_disk(struct blk_desc *dev_desc,
|
|
@@ -417,7 +417,7 @@ int blk_get_device_by_str(const char *ifname, const char *dev_hwpart_str,
|
|
|
*dev_desc = get_dev_hwpart(ifname, dev, hwpart);
|
|
|
if (!(*dev_desc) || ((*dev_desc)->type == DEV_TYPE_UNKNOWN)) {
|
|
|
debug("** Bad device %s %s **\n", ifname, dev_hwpart_str);
|
|
|
- dev = -ENOENT;
|
|
|
+ dev = -ENODEV;
|
|
|
goto cleanup;
|
|
|
}
|
|
|
|
|
@@ -441,7 +441,7 @@ int blk_get_device_part_str(const char *ifname, const char *dev_part_str,
|
|
|
struct blk_desc **dev_desc,
|
|
|
struct disk_partition *info, int allow_whole_dev)
|
|
|
{
|
|
|
- int ret = -1;
|
|
|
+ int ret;
|
|
|
const char *part_str;
|
|
|
char *dup_str = NULL;
|
|
|
const char *dev_str;
|
|
@@ -483,7 +483,7 @@ int blk_get_device_part_str(const char *ifname, const char *dev_part_str,
|
|
|
if (0 == strcmp(ifname, "ubi")) {
|
|
|
if (!ubifs_is_mounted()) {
|
|
|
printf("UBIFS not mounted, use ubifsmount to mount volume first!\n");
|
|
|
- return -1;
|
|
|
+ return -EINVAL;
|
|
|
}
|
|
|
|
|
|
*dev_desc = NULL;
|
|
@@ -505,6 +505,7 @@ int blk_get_device_part_str(const char *ifname, const char *dev_part_str,
|
|
|
/* If still no dev_part_str, it's an error */
|
|
|
if (!dev_part_str) {
|
|
|
printf("** No device specified **\n");
|
|
|
+ ret = -ENODEV;
|
|
|
goto cleanup;
|
|
|
}
|
|
|
|
|
@@ -521,8 +522,10 @@ int blk_get_device_part_str(const char *ifname, const char *dev_part_str,
|
|
|
|
|
|
/* Look up the device */
|
|
|
dev = blk_get_device_by_str(ifname, dev_str, dev_desc);
|
|
|
- if (dev < 0)
|
|
|
+ if (dev < 0) {
|
|
|
+ ret = dev;
|
|
|
goto cleanup;
|
|
|
+ }
|
|
|
|
|
|
/* Convert partition ID string to number */
|
|
|
if (!part_str || !*part_str) {
|
|
@@ -539,6 +542,7 @@ int blk_get_device_part_str(const char *ifname, const char *dev_part_str,
|
|
|
if (*ep || (part == 0 && !allow_whole_dev)) {
|
|
|
printf("** Bad partition specification %s %s **\n",
|
|
|
ifname, dev_part_str);
|
|
|
+ ret = -ENOENT;
|
|
|
goto cleanup;
|
|
|
}
|
|
|
}
|
|
@@ -552,6 +556,7 @@ int blk_get_device_part_str(const char *ifname, const char *dev_part_str,
|
|
|
if (!(*dev_desc)->lba) {
|
|
|
printf("** Bad device size - %s %s **\n", ifname,
|
|
|
dev_str);
|
|
|
+ ret = -EINVAL;
|
|
|
goto cleanup;
|
|
|
}
|
|
|
|
|
@@ -563,6 +568,7 @@ int blk_get_device_part_str(const char *ifname, const char *dev_part_str,
|
|
|
if ((part > 0) || (!allow_whole_dev)) {
|
|
|
printf("** No partition table - %s %s **\n", ifname,
|
|
|
dev_str);
|
|
|
+ ret = -EPROTONOSUPPORT;
|
|
|
goto cleanup;
|
|
|
}
|
|
|
|
|
@@ -631,7 +637,6 @@ int blk_get_device_part_str(const char *ifname, const char *dev_part_str,
|
|
|
*info = tmpinfo;
|
|
|
} else {
|
|
|
printf("** No valid partitions found **\n");
|
|
|
- ret = -1;
|
|
|
goto cleanup;
|
|
|
}
|
|
|
}
|
|
@@ -639,7 +644,7 @@ int blk_get_device_part_str(const char *ifname, const char *dev_part_str,
|
|
|
printf("** Invalid partition type \"%.32s\""
|
|
|
" (expect \"" BOOT_PART_TYPE "\")\n",
|
|
|
info->type);
|
|
|
- ret = -1;
|
|
|
+ ret = -EINVAL;
|
|
|
goto cleanup;
|
|
|
}
|
|
|
|
|
@@ -675,7 +680,7 @@ int part_get_info_by_name_type(struct blk_desc *dev_desc, const char *name,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return -1;
|
|
|
+ return -ENOENT;
|
|
|
}
|
|
|
|
|
|
int part_get_info_by_name(struct blk_desc *dev_desc, const char *name,
|
|
@@ -705,7 +710,7 @@ static int part_get_info_by_dev_and_name(const char *dev_iface,
|
|
|
{
|
|
|
char *ep;
|
|
|
const char *part_str;
|
|
|
- int dev_num;
|
|
|
+ int dev_num, ret;
|
|
|
|
|
|
part_str = strchr(dev_part_str, '#');
|
|
|
if (!part_str || part_str == dev_part_str)
|
|
@@ -721,13 +726,12 @@ static int part_get_info_by_dev_and_name(const char *dev_iface,
|
|
|
*dev_desc = blk_get_dev(dev_iface, dev_num);
|
|
|
if (!*dev_desc) {
|
|
|
printf("Could not find %s %d\n", dev_iface, dev_num);
|
|
|
- return -EINVAL;
|
|
|
+ return -ENODEV;
|
|
|
}
|
|
|
- if (part_get_info_by_name(*dev_desc, part_str, part_info) < 0) {
|
|
|
+ ret = part_get_info_by_name(*dev_desc, part_str, part_info);
|
|
|
+ if (ret < 0)
|
|
|
printf("Could not find \"%s\" partition\n", part_str);
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
- return 0;
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
int part_get_info_by_dev_and_name_or_num(const char *dev_iface,
|
|
@@ -735,21 +739,23 @@ int part_get_info_by_dev_and_name_or_num(const char *dev_iface,
|
|
|
struct blk_desc **dev_desc,
|
|
|
struct disk_partition *part_info)
|
|
|
{
|
|
|
+ int ret;
|
|
|
+
|
|
|
/* Split the part_name if passed as "$dev_num#part_name". */
|
|
|
- if (!part_get_info_by_dev_and_name(dev_iface, dev_part_str,
|
|
|
- dev_desc, part_info))
|
|
|
- return 0;
|
|
|
+ ret = part_get_info_by_dev_and_name(dev_iface, dev_part_str,
|
|
|
+ dev_desc, part_info);
|
|
|
+ if (ret >= 0)
|
|
|
+ return ret;
|
|
|
/*
|
|
|
* Couldn't lookup by name, try looking up the partition description
|
|
|
* directly.
|
|
|
*/
|
|
|
- if (blk_get_device_part_str(dev_iface, dev_part_str,
|
|
|
- dev_desc, part_info, 1) < 0) {
|
|
|
+ ret = blk_get_device_part_str(dev_iface, dev_part_str,
|
|
|
+ dev_desc, part_info, 1);
|
|
|
+ if (ret < 0)
|
|
|
printf("Couldn't find partition %s %s\n",
|
|
|
dev_iface, dev_part_str);
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
- return 0;
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
void part_set_generic_name(const struct blk_desc *dev_desc,
|