summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2015-11-06 16:10:42 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2015-11-06 16:10:42 +0100
commit1d9295b344a885e5a79de38df28740a1db6f6103 (patch)
treeca427bbf13a04f3480fb398630473bede4ef6463 /fs
parent736a74ba7a1c3983105b92a709c263e206fe3913 (diff)
parent6face0e8ab8d97dcc7284a8a5d7ae1f4d134798f (diff)
downloadbarebox-1d9295b344a885e5a79de38df28740a1db6f6103.tar.gz
barebox-1d9295b344a885e5a79de38df28740a1db6f6103.tar.xz
Merge branch 'for-next/misc'
Diffstat (limited to 'fs')
-rw-r--r--fs/devfs-core.c6
-rw-r--r--fs/devfs.c7
-rw-r--r--fs/fs.c9
3 files changed, 13 insertions, 9 deletions
diff --git a/fs/devfs-core.c b/fs/devfs-core.c
index 62571fb8a3..2541ea36e6 100644
--- a/fs/devfs-core.c
+++ b/fs/devfs-core.c
@@ -121,9 +121,13 @@ int cdev_do_open(struct cdev *cdev, unsigned long flags)
struct cdev *cdev_open(const char *name, unsigned long flags)
{
- struct cdev *cdev = cdev_by_name(name);
+ struct cdev *cdev;
int ret;
+ if (!strncmp(name, "/dev/", 5))
+ name += 5;
+
+ cdev = cdev_by_name(name);
if (!cdev)
return NULL;
diff --git a/fs/devfs.c b/fs/devfs.c
index c6db25cb14..5c96682f96 100644
--- a/fs/devfs.c
+++ b/fs/devfs.c
@@ -228,6 +228,13 @@ static int devfs_stat(struct device_d *_dev, const char *filename, struct stat *
static int devfs_probe(struct device_d *dev)
{
+ struct fs_device_d *fsdev = dev_to_fs_device(dev);
+
+ if (strcmp(fsdev->path, "/dev")) {
+ dev_err(dev, "devfs can only be mounted on /dev/\n");
+ return -EINVAL;
+ }
+
return 0;
}
diff --git a/fs/fs.c b/fs/fs.c
index c2a20e17d7..4983fc7ec1 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -1205,8 +1205,6 @@ static const char *detect_fs(const char *filename)
struct driver_d *drv;
struct fs_driver_d *fdrv;
- if (!strncmp(filename, "/dev/", 5))
- filename += 5;
type = cdev_detect_type(filename);
if (type == filetype_unknown)
@@ -1224,12 +1222,7 @@ static const char *detect_fs(const char *filename)
int fsdev_open_cdev(struct fs_device_d *fsdev)
{
- const char *backingstore = fsdev->backingstore;
-
- if (!strncmp(backingstore , "/dev/", 5))
- backingstore += 5;
-
- fsdev->cdev = cdev_open(backingstore, O_RDWR);
+ fsdev->cdev = cdev_open(fsdev->backingstore, O_RDWR);
if (!fsdev->cdev)
return -EINVAL;