disk: Return the partition number in part_get_info_by_name()

Similar to what blk_get_device_part_str() does, this patch makes
part_get_info_by_name() return the partition number in case of a match.
This is useful when the partition number is needed and not just the
descriptor.

Signed-off-by: Alex Deymo <deymo@google.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Alex Deymo 2017-04-02 01:49:50 -07:00 committed by Tom Rini
parent 210a7176ee
commit 88b6329cce
3 changed files with 6 additions and 5 deletions

View File

@ -37,7 +37,7 @@ static int part_get_info_by_name_or_alias(struct blk_desc *dev_desc,
int ret;
ret = part_get_info_by_name(dev_desc, name, info);
if (ret) {
if (ret < 0) {
/* strlen("fastboot_partition_alias_") + 32(part_name) + 1 */
char env_alias_name[25 + 32 + 1];
char *aliased_part_name;
@ -153,7 +153,7 @@ void fb_mmc_flash_write(const char *cmd, void *download_buffer,
}
#endif
if (part_get_info_by_name_or_alias(dev_desc, cmd, &info)) {
if (part_get_info_by_name_or_alias(dev_desc, cmd, &info) < 0) {
error("cannot find partition: '%s'\n", cmd);
fastboot_fail("cannot find partition");
return;
@ -205,7 +205,7 @@ void fb_mmc_erase(const char *cmd)
}
ret = part_get_info_by_name_or_alias(dev_desc, cmd, &info);
if (ret) {
if (ret < 0) {
error("cannot find partition: '%s'", cmd);
fastboot_fail("cannot find partition");
return;

View File

@ -635,7 +635,7 @@ int part_get_info_by_name(struct blk_desc *dev_desc, const char *name,
}
if (strcmp(name, (const char *)info->name) == 0) {
/* matched */
return 0;
return i;
}
}
}

View File

@ -163,7 +163,8 @@ int blk_get_device_part_str(const char *ifname, const char *dev_part_str,
* @param gpt_name - the specified table entry name
* @param info - returns the disk partition info
*
* @return - '0' on match, '-1' on no match, otherwise error
* @return - the partition number on match (starting on 1), -1 on no match,
* otherwise error
*/
int part_get_info_by_name(struct blk_desc *dev_desc,
const char *name, disk_partition_t *info);