diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-07-10 08:48:00 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-07-15 11:16:09 +0200 |
commit | 2672c906a4b83cd2aef1ddc0b9d2ec54b89eba3d (patch) | |
tree | 7fd4370608aac33a39bfa07069eb1d985381193c /fs | |
parent | bec70b3aaa1a750d32ac8c5299fb434454a87f07 (diff) | |
download | barebox-2672c906a4b83cd2aef1ddc0b9d2ec54b89eba3d.tar.gz barebox-2672c906a4b83cd2aef1ddc0b9d2ec54b89eba3d.tar.xz |
cdev: allow to open a struct cdev
cdev_open() opens a cdev by name. This introduces cdev_do_open which
allows to open a cdev when the cdev is already found by other means.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/devfs-core.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/fs/devfs-core.c b/fs/devfs-core.c index a2bea93ed6..816f244f1c 100644 --- a/fs/devfs-core.c +++ b/fs/devfs-core.c @@ -70,6 +70,14 @@ int cdev_find_free_index(const char *basename) return -EBUSY; /* all indexes are used */ } +int cdev_do_open(struct cdev *cdev, unsigned long flags) +{ + if (cdev->ops->open) + return cdev->ops->open(cdev, flags); + + return 0; +} + struct cdev *cdev_open(const char *name, unsigned long flags) { struct cdev *cdev = cdev_by_name(name); @@ -78,11 +86,9 @@ struct cdev *cdev_open(const char *name, unsigned long flags) if (!cdev) return NULL; - if (cdev->ops->open) { - ret = cdev->ops->open(cdev, flags); - if (ret) - return NULL; - } + ret = cdev_do_open(cdev, flags); + if (ret) + return NULL; return cdev; } |