diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2015-11-06 16:10:42 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-11-06 16:10:42 +0100 |
commit | 1d9295b344a885e5a79de38df28740a1db6f6103 (patch) | |
tree | ca427bbf13a04f3480fb398630473bede4ef6463 /fs | |
parent | 736a74ba7a1c3983105b92a709c263e206fe3913 (diff) | |
parent | 6face0e8ab8d97dcc7284a8a5d7ae1f4d134798f (diff) | |
download | barebox-1d9295b344a885e5a79de38df28740a1db6f6103.tar.gz barebox-1d9295b344a885e5a79de38df28740a1db6f6103.tar.xz |
Merge branch 'for-next/misc'
Diffstat (limited to 'fs')
-rw-r--r-- | fs/devfs-core.c | 6 | ||||
-rw-r--r-- | fs/devfs.c | 7 | ||||
-rw-r--r-- | fs/fs.c | 9 |
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; } @@ -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; |