[PATCH] fixup! detect_fs: use device instead of file
Peter Mamonov
pmamonov at gmail.com
Fri Oct 9 04:11:07 PDT 2015
On Fri, 9 Oct 2015 08:31:49 +0200
Sascha Hauer <s.hauer at pengutronix.de> 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
>
>
More information about the barebox
mailing list