mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH] fixup! detect_fs: use device instead of file
@ 2015-10-07 15:52 Peter Mamonov
  2015-10-09  6:31 ` Sascha Hauer
  0 siblings, 1 reply; 5+ messages in thread
From: Peter Mamonov @ 2015-10-07 15:52 UTC (permalink / raw)
  To: barebox; +Cc: Peter Mamonov, vicencb

---
 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));
 	struct driver_d *drv;
 	struct fs_driver_d *fdrv;
 
-- 
2.1.4


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] fixup! detect_fs: use device instead of file
  2015-10-07 15:52 [PATCH] fixup! detect_fs: use device instead of file Peter Mamonov
@ 2015-10-09  6:31 ` Sascha Hauer
  2015-10-09 11:11   ` Peter Mamonov
  0 siblings, 1 reply; 5+ messages in thread
From: Sascha Hauer @ 2015-10-09  6:31 UTC (permalink / raw)
  To: Peter Mamonov; +Cc: barebox, vicencb

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;

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 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] fixup! detect_fs: use device instead of file
  2015-10-09  6:31 ` Sascha Hauer
@ 2015-10-09 11:11   ` Peter Mamonov
  2015-10-09 16:21     ` Sascha Hauer
  0 siblings, 1 reply; 5+ messages in thread
From: Peter Mamonov @ 2015-10-09 11:11 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox, vicencb

On Fri, 9 Oct 2015 08:31:49 +0200
Sascha Hauer <s.hauer@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
> 
> 


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] fixup! detect_fs: use device instead of file
  2015-10-09 11:11   ` Peter Mamonov
@ 2015-10-09 16:21     ` Sascha Hauer
  2015-10-09 17:16       ` Vicente
  0 siblings, 1 reply; 5+ messages in thread
From: Sascha Hauer @ 2015-10-09 16:21 UTC (permalink / raw)
  To: Peter Mamonov; +Cc: barebox, vicencb

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

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] fixup! detect_fs: use device instead of file
  2015-10-09 16:21     ` Sascha Hauer
@ 2015-10-09 17:16       ` Vicente
  0 siblings, 0 replies; 5+ messages in thread
From: Vicente @ 2015-10-09 17:16 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox, Peter Mamonov

On Fri, Oct 9, 2015 at 5:21 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> 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@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.

Yes, that is correct, from
http://git.pengutronix.de/?p=barebox.git;a=blob;f=arch/arm/mach-omap/xload.c#l104
what is mount is just the partition name.
The only thing is that it is not me, that was already there.

Regards,
  Vicente.

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

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-10-09 17:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-07 15:52 [PATCH] fixup! detect_fs: use device instead of file Peter Mamonov
2015-10-09  6:31 ` Sascha Hauer
2015-10-09 11:11   ` Peter Mamonov
2015-10-09 16:21     ` Sascha Hauer
2015-10-09 17:16       ` Vicente

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox