a cdev has to be opened before usage. Use cdev_open instead of cdev_by_name. Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> --- common/filetype.c | 4 +++- fs/fs.c | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/common/filetype.c b/common/filetype.c index dc2ff3f..9ec8ebf 100644 --- a/common/filetype.c +++ b/common/filetype.c @@ -369,9 +369,10 @@ enum filetype cdev_detect_type(const char *name) struct cdev *cdev; void *buf; - cdev = cdev_by_name(name); + cdev = cdev_open(name, O_RDONLY); if (!cdev) return type; + buf = xzalloc(FILE_TYPE_SAFE_BUFSIZE); ret = cdev_read(cdev, buf, FILE_TYPE_SAFE_BUFSIZE, 0, 0); if (ret < 0) @@ -396,5 +397,6 @@ enum filetype cdev_detect_type(const char *name) err_out: free(buf); + cdev_close(cdev); return type; } diff --git a/fs/fs.c b/fs/fs.c index c2a20e1..2d7578b 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) -- 2.6.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox