summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-05-24 12:54:54 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-07-15 11:15:47 +0200
commit121c3d6e9c2fb4649f3349edc522c99f3b9585d9 (patch)
tree61deccc69452fe6338c231118df5c1f8a4440aa5 /fs
parent98df44ee7d6db3919a4dd11e227d1e0caedbfe86 (diff)
downloadbarebox-121c3d6e9c2fb4649f3349edc522c99f3b9585d9.tar.gz
barebox-121c3d6e9c2fb4649f3349edc522c99f3b9585d9.tar.xz
devfs: let devfs_add_partition return the new partition
Useful for unregistering later or for adding addional flags. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'fs')
-rw-r--r--fs/devfs-core.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/devfs-core.c b/fs/devfs-core.c
index 262e0a2c34..a16866eab9 100644
--- a/fs/devfs-core.c
+++ b/fs/devfs-core.c
@@ -226,21 +226,21 @@ int devfs_remove(struct cdev *cdev)
return 0;
}
-int devfs_add_partition(const char *devname, loff_t offset, loff_t size,
+struct cdev *devfs_add_partition(const char *devname, loff_t offset, loff_t size,
int flags, const char *name)
{
struct cdev *cdev, *new;
cdev = cdev_by_name(name);
if (cdev)
- return -EEXIST;
+ return ERR_PTR(-EEXIST);
cdev = cdev_by_name(devname);
if (!cdev)
- return -ENOENT;
+ return ERR_PTR(-ENOENT);
if (offset + size > cdev->size)
- return -EINVAL;
+ return ERR_PTR(-EINVAL);
new = xzalloc(sizeof (*new));
new->name = strdup(name);
@@ -257,14 +257,14 @@ int devfs_add_partition(const char *devname, loff_t offset, loff_t size,
if (IS_ERR(new->mtd)) {
int ret = PTR_ERR(new->mtd);
free(new);
- return ret;
+ return ERR_PTR(ret);
}
}
#endif
devfs_create(new);
- return 0;
+ return new;
}
int devfs_del_partition(const char *name)