From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZkaQU-0003yn-D4 for barebox@lists.infradead.org; Fri, 09 Oct 2015 16:21:47 +0000 Date: Fri, 9 Oct 2015 18:21:23 +0200 From: Sascha Hauer Message-ID: <20151009162123.GH7858@pengutronix.de> References: <1444233177-21491-1-git-send-email-pmamonov@gmail.com> <20151009063149.GD7858@pengutronix.de> <20151009141107.39681df1@berta> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20151009141107.39681df1@berta> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: Re: [PATCH] fixup! detect_fs: use device instead of file To: Peter Mamonov Cc: barebox@lists.infradead.org, vicencb@gmail.com On Fri, Oct 09, 2015 at 02:11:07PM +0300, Peter Mamonov wrote: > On Fri, 9 Oct 2015 08:31:49 +0200 > Sascha Hauer 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