summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2015-12-11 11:39:32 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2016-01-08 08:30:55 +0100
commitab96ba298b55e0b3eef1c18fc8be506071634cdf (patch)
treeb9e44e108ef3295969e96c784a73516c431f26c5
parent8a35fddf572578eea4846aa440d3caba31f3cc37 (diff)
downloadbarebox-ab96ba298b55e0b3eef1c18fc8be506071634cdf.tar.gz
barebox-ab96ba298b55e0b3eef1c18fc8be506071634cdf.tar.xz
partition: Create links with partition names
When a partition has a name create a link to the original partition rather than registering a second cdev. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--common/partitions.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/common/partitions.c b/common/partitions.c
index 4f50bfeff1..82ec508e64 100644
--- a/common/partitions.c
+++ b/common/partitions.c
@@ -71,20 +71,14 @@ static int register_one_partition(struct block_device *blk,
if (!part->name[0])
return 0;
- partition_name = asprintf("%s.%s", blk->cdev.name, part->name);
- if (!partition_name)
- return -ENOMEM;
-
- dev_dbg(blk->dev, "Registering partition %s on drive %s\n",
- partition_name, blk->cdev.name);
- cdev = devfs_add_partition(blk->cdev.name,
- start, size, 0, partition_name);
-
- if (IS_ERR(cdev))
- dev_warn(blk->dev, "Registering partition %s on drive %s failed\n",
- partition_name, blk->cdev.name);
+ partition_name = xasprintf("%s.%s", blk->cdev.name, part->name);
+ ret = devfs_create_link(cdev, partition_name);
+ if (ret)
+ dev_warn(blk->dev, "Failed to create link from %s to %s\n",
+ partition_name, blk->cdev.name);
+ free(partition_name);
- ret = 0;
+ return 0;
out:
free(partition_name);
return ret;