[PATCH] fixup! detect_fs: use device instead of file

Sascha Hauer s.hauer at pengutronix.de
Fri Oct 9 09:21:23 PDT 2015


On Fri, Oct 09, 2015 at 02:11:07PM +0300, Peter Mamonov wrote:
> 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)?

Hm, Let's erm, consider that not supported ;)
We already have some places where we expect devfs mounted to /dev/.
Not particularly nice I must admit.

> 
> 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
> ?

Presumely He passes the device name (without /dev/) to mount.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list