On Fri, 9 Oct 2015 08:31:49 +0200 Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> wrote: > On Wed, Oct 07, 2015 at 06:52:57PM +0300, Peter Mamonov wrote: > > --- > > fs/fs.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/fs/fs.c b/fs/fs.c > > index c041e41..6283cea 100644 > > --- a/fs/fs.c > > +++ b/fs/fs.c > > @@ -1201,7 +1201,7 @@ EXPORT_SYMBOL(register_fs_driver); > > > > static const char *detect_fs(const char *filename) > > { > > - enum filetype type = cdev_detect_type(filename); > > + enum filetype type = cdev_detect_type(basename(filename)); > > basename is not so nice since we do not know whether the the part of > the path we drop is really what we expect. Can we rather have a: > > if (!strncmp(filename, "/dev/", 5)) > filename += 5; What if devfs is mounted somehere else (not on /dev)? Let me clarify the situation. After applying "detect_fs: use device instead of file" the mount command becomes completely broken for me, since detect_fs() is supplied with the full path to the device file, while cdev_by_name() expects device file name rather than full path: static const char *detect_fs(const char *filename) { enum filetype type = cdev_detect_type(filename); ... if (type == filetype_unknown) return NULL; ... } struct cdev *cdev_by_name(const char *filename) { struct cdev *cdev; list_for_each_entry(cdev, &cdev_list, list) { if (!strcmp(cdev->name, filename)) <<<<<<< NO MATCH return cdev; } return NULL; } struct cdev { ... char *name; /* filename under /dev/ */ ... } Can you explain how could it work for Vicente: http://lists.infradead.org/pipermail/barebox/2015-October/024832.html ? Peter > > Sascha > > _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox