All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] proc: register filesystem last
@ 2018-03-09 22:27 Alexey Dobriyan
  2018-03-09 22:49 ` Andrew Morton
  0 siblings, 1 reply; 7+ messages in thread
From: Alexey Dobriyan @ 2018-03-09 22:27 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel

As soon as register_filesystem() exits, filesystem can be mounted.
It is better to present fully operational /proc.

Of course it doesn't matter because /proc is not modular
but do it anyway.

Drop error check, it should be handled by panicking.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---

 fs/proc/root.c |    8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

--- a/fs/proc/root.c
+++ b/fs/proc/root.c
@@ -123,14 +123,8 @@ static struct file_system_type proc_fs_type = {
 
 void __init proc_root_init(void)
 {
-	int err;
-
 	proc_init_kmemcache();
 	set_proc_pid_nlink();
-	err = register_filesystem(&proc_fs_type);
-	if (err)
-		return;
-
 	proc_self_init();
 	proc_thread_self_init();
 	proc_symlink("mounts", NULL, "self/mounts");
@@ -146,6 +140,8 @@ void __init proc_root_init(void)
 	proc_tty_init();
 	proc_mkdir("bus", NULL);
 	proc_sys_init();
+
+	register_filesystem(&proc_fs_type);
 }
 
 static int proc_root_getattr(const struct path *path, struct kstat *stat,

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

* Re: [PATCH] proc: register filesystem last
  2018-03-09 22:27 [PATCH] proc: register filesystem last Alexey Dobriyan
@ 2018-03-09 22:49 ` Andrew Morton
  2018-03-10  0:06   ` Alexey Dobriyan
  0 siblings, 1 reply; 7+ messages in thread
From: Andrew Morton @ 2018-03-09 22:49 UTC (permalink / raw)
  To: Alexey Dobriyan; +Cc: linux-kernel

On Sat, 10 Mar 2018 01:27:09 +0300 Alexey Dobriyan <adobriyan@gmail.com> wrote:

> As soon as register_filesystem() exits, filesystem can be mounted.
> It is better to present fully operational /proc.
> 
> Of course it doesn't matter because /proc is not modular
> but do it anyway.
> 
> Drop error check, it should be handled by panicking.

So... shouldn't we add a call to panic()?

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

* Re: [PATCH] proc: register filesystem last
  2018-03-09 22:49 ` Andrew Morton
@ 2018-03-10  0:06   ` Alexey Dobriyan
  2018-03-28  4:48     ` Al Viro
  0 siblings, 1 reply; 7+ messages in thread
From: Alexey Dobriyan @ 2018-03-10  0:06 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Fri, Mar 09, 2018 at 02:49:38PM -0800, Andrew Morton wrote:
> On Sat, 10 Mar 2018 01:27:09 +0300 Alexey Dobriyan <adobriyan@gmail.com> wrote:
> 
> > As soon as register_filesystem() exits, filesystem can be mounted.
> > It is better to present fully operational /proc.
> > 
> > Of course it doesn't matter because /proc is not modular
> > but do it anyway.
> > 
> > Drop error check, it should be handled by panicking.
> 
> So... shouldn't we add a call to panic()?

via FS_PANIC flag, yes. I have a patch somewhere.
There are 104 filesystems ATM, some internal, some not.
Some modular, some not.

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

* Re: [PATCH] proc: register filesystem last
  2018-03-10  0:06   ` Alexey Dobriyan
@ 2018-03-28  4:48     ` Al Viro
  2018-03-28  7:26       ` Alexey Dobriyan
  0 siblings, 1 reply; 7+ messages in thread
From: Al Viro @ 2018-03-28  4:48 UTC (permalink / raw)
  To: Alexey Dobriyan; +Cc: Andrew Morton, linux-kernel

On Sat, Mar 10, 2018 at 03:06:34AM +0300, Alexey Dobriyan wrote:
> On Fri, Mar 09, 2018 at 02:49:38PM -0800, Andrew Morton wrote:
> > On Sat, 10 Mar 2018 01:27:09 +0300 Alexey Dobriyan <adobriyan@gmail.com> wrote:
> > 
> > > As soon as register_filesystem() exits, filesystem can be mounted.
> > > It is better to present fully operational /proc.
> > > 
> > > Of course it doesn't matter because /proc is not modular
> > > but do it anyway.
> > > 
> > > Drop error check, it should be handled by panicking.
> > 
> > So... shouldn't we add a call to panic()?
> 
> via FS_PANIC flag, yes. I have a patch somewhere.
> There are 104 filesystems ATM, some internal, some not.
> Some modular, some not.

You do realize that the only case when register_filesystem() fails is
"another driver has already registered filesystem type with the same
name"?  Is there *ever* a case when
	* you could expect that to happen and
	* panic would be a sane response?

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

* Re: [PATCH] proc: register filesystem last
  2018-03-28  4:48     ` Al Viro
@ 2018-03-28  7:26       ` Alexey Dobriyan
  2018-03-28 14:47         ` Al Viro
  0 siblings, 1 reply; 7+ messages in thread
From: Alexey Dobriyan @ 2018-03-28  7:26 UTC (permalink / raw)
  To: Al Viro; +Cc: Andrew Morton, linux-kernel

On Wed, Mar 28, 2018 at 05:48:23AM +0100, Al Viro wrote:
> On Sat, Mar 10, 2018 at 03:06:34AM +0300, Alexey Dobriyan wrote:
> > On Fri, Mar 09, 2018 at 02:49:38PM -0800, Andrew Morton wrote:
> > > On Sat, 10 Mar 2018 01:27:09 +0300 Alexey Dobriyan <adobriyan@gmail.com> wrote:
> > > 
> > > > As soon as register_filesystem() exits, filesystem can be mounted.
> > > > It is better to present fully operational /proc.
> > > > 
> > > > Of course it doesn't matter because /proc is not modular
> > > > but do it anyway.
> > > > 
> > > > Drop error check, it should be handled by panicking.
> > > 
> > > So... shouldn't we add a call to panic()?
> > 
> > via FS_PANIC flag, yes. I have a patch somewhere.
> > There are 104 filesystems ATM, some internal, some not.
> > Some modular, some not.
> 
> You do realize that the only case when register_filesystem() fails is
> "another driver has already registered filesystem type with the same
> name"?  Is there *ever* a case when
> 	* you could expect that to happen and
> 	* panic would be a sane response?

It is for standartizing all those error checks in init sequence by
removing them. Modules won't have FS_PANIC.

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

* Re: [PATCH] proc: register filesystem last
  2018-03-28  7:26       ` Alexey Dobriyan
@ 2018-03-28 14:47         ` Al Viro
  2018-03-28 22:38           ` Alexey Dobriyan
  0 siblings, 1 reply; 7+ messages in thread
From: Al Viro @ 2018-03-28 14:47 UTC (permalink / raw)
  To: Alexey Dobriyan; +Cc: Andrew Morton, linux-kernel

On Wed, Mar 28, 2018 at 10:26:57AM +0300, Alexey Dobriyan wrote:
> On Wed, Mar 28, 2018 at 05:48:23AM +0100, Al Viro wrote:
> > On Sat, Mar 10, 2018 at 03:06:34AM +0300, Alexey Dobriyan wrote:
> > > On Fri, Mar 09, 2018 at 02:49:38PM -0800, Andrew Morton wrote:
> > > > On Sat, 10 Mar 2018 01:27:09 +0300 Alexey Dobriyan <adobriyan@gmail.com> wrote:
> > > > 
> > > > > As soon as register_filesystem() exits, filesystem can be mounted.
> > > > > It is better to present fully operational /proc.
> > > > > 
> > > > > Of course it doesn't matter because /proc is not modular
> > > > > but do it anyway.
> > > > > 
> > > > > Drop error check, it should be handled by panicking.
> > > > 
> > > > So... shouldn't we add a call to panic()?
> > > 
> > > via FS_PANIC flag, yes. I have a patch somewhere.
> > > There are 104 filesystems ATM, some internal, some not.
> > > Some modular, some not.
> > 
> > You do realize that the only case when register_filesystem() fails is
> > "another driver has already registered filesystem type with the same
> > name"?  Is there *ever* a case when
> > 	* you could expect that to happen and
> > 	* panic would be a sane response?
> 
> It is for standartizing all those error checks in init sequence by
> removing them. Modules won't have FS_PANIC.

Huh?  Again, _when_ is that thing appropriate?  To register_filesystem()
failure in non-modular case you need several builtin fs drivers to
try and register fs types with the same name.  In this particular
case, you need another in-kernel filesystem called "proc" registered
first.

It's not about extreme oom early in the boot or anything like that -
plain and simple badly modified and misconfigured kernel.

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

* Re: [PATCH] proc: register filesystem last
  2018-03-28 14:47         ` Al Viro
@ 2018-03-28 22:38           ` Alexey Dobriyan
  0 siblings, 0 replies; 7+ messages in thread
From: Alexey Dobriyan @ 2018-03-28 22:38 UTC (permalink / raw)
  To: Al Viro; +Cc: Andrew Morton, linux-kernel

On Wed, Mar 28, 2018 at 03:47:49PM +0100, Al Viro wrote:
> On Wed, Mar 28, 2018 at 10:26:57AM +0300, Alexey Dobriyan wrote:
> > On Wed, Mar 28, 2018 at 05:48:23AM +0100, Al Viro wrote:
> > > On Sat, Mar 10, 2018 at 03:06:34AM +0300, Alexey Dobriyan wrote:
> > > > On Fri, Mar 09, 2018 at 02:49:38PM -0800, Andrew Morton wrote:
> > > > > On Sat, 10 Mar 2018 01:27:09 +0300 Alexey Dobriyan <adobriyan@gmail.com> wrote:
> > > > > 
> > > > > > As soon as register_filesystem() exits, filesystem can be mounted.
> > > > > > It is better to present fully operational /proc.
> > > > > > 
> > > > > > Of course it doesn't matter because /proc is not modular
> > > > > > but do it anyway.
> > > > > > 
> > > > > > Drop error check, it should be handled by panicking.
> > > > > 
> > > > > So... shouldn't we add a call to panic()?
> > > > 
> > > > via FS_PANIC flag, yes. I have a patch somewhere.
> > > > There are 104 filesystems ATM, some internal, some not.
> > > > Some modular, some not.
> > > 
> > > You do realize that the only case when register_filesystem() fails is
> > > "another driver has already registered filesystem type with the same
> > > name"?  Is there *ever* a case when
> > > 	* you could expect that to happen and
> > > 	* panic would be a sane response?
> > 
> > It is for standartizing all those error checks in init sequence by
> > removing them. Modules won't have FS_PANIC.
> 
> Huh?  Again, _when_ is that thing appropriate?  To register_filesystem()
> failure in non-modular case you need several builtin fs drivers to
> try and register fs types with the same name.  In this particular
> case, you need another in-kernel filesystem called "proc" registered
> first.
> 
> It's not about extreme oom early in the boot or anything like that -
> plain and simple badly modified and misconfigured kernel.

At this point I'm not sure if we agree or disagree.

If register fails at init time it can mean that strncmp() is buggy,
or memory corruption already happened (file_system_type instances aren't
const after all). In all cases it is appropriate to panic exactly
because "regular" name collision will never happen.

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

end of thread, other threads:[~2018-03-28 22:38 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-09 22:27 [PATCH] proc: register filesystem last Alexey Dobriyan
2018-03-09 22:49 ` Andrew Morton
2018-03-10  0:06   ` Alexey Dobriyan
2018-03-28  4:48     ` Al Viro
2018-03-28  7:26       ` Alexey Dobriyan
2018-03-28 14:47         ` Al Viro
2018-03-28 22:38           ` Alexey Dobriyan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.