proc: register filesystem last
PATCH 1/1 proc: register filesystem last
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.
---
fs/proc/root.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
fs/proc/root.c +2 -6
@@ -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,
Quoted 7 lines · On Sat, 10 Mar 2018 01:27:09 +0300 Alexey Dobriyan <[email protected]> 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()?
Quoted 11 lines · Andrew Morton
Quoted 7 lines · On Sat, 10 Mar 2018 01:27:09 +0300 Alexey Dobriyan <[email protected]> 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.
Quoted 9 lines · Alexey Dobriyan
Quoted 8 lines · Andrew Morton
Quoted 6 lines · On Sat, 10 Mar 2018 01:27:09 +0300 Alexey Dobriyan <[email protected]> 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.
Quoted 7 lines
Quoted 3 lines
Quoted 1 line
Drop error check, it should be handled by panicking.
So... shouldn't we add a call to
panic()?via
FS_PANICflag, 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?
Quoted 18 lines · Al Viro
Quoted 9 lines · Alexey Dobriyan
Quoted 8 lines · Andrew Morton
Quoted 6 lines · On Sat, 10 Mar 2018 01:27:09 +0300 Alexey Dobriyan <[email protected]> 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.
Quoted 7 lines
Quoted 3 lines
Quoted 1 line
Drop error check, it should be handled by panicking.
So... shouldn't we add a call to
panic()?via
FS_PANICflag, yes. I have a patch somewhere. There are 104 filesystems ATM, some internal, some not. Some modular, some not.
Quoted 5 lines
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.
Quoted 19 lines · Alexey Dobriyan
Quoted 18 lines · Al Viro
Quoted 16 lines · Alexey Dobriyan
Quoted 11 lines · Andrew Morton
Quoted 7 lines · On Sat, 10 Mar 2018 01:27:09 +0300 Alexey Dobriyan <[email protected]> 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_PANICflag, yes. I have a patch somewhere. There are 104 filesystems ATM, some internal, some not. Some modular, some not.
Quoted 8 lines
Quoted 5 lines
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.
Quoted 29 lines · Al Viro
Quoted 19 lines · Alexey Dobriyan
Quoted 18 lines · Al Viro
Quoted 16 lines · Alexey Dobriyan
Quoted 11 lines · Andrew Morton
Quoted 7 lines · On Sat, 10 Mar 2018 01:27:09 +0300 Alexey Dobriyan <[email protected]> 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_PANICflag, yes. I have a patch somewhere. There are 104 filesystems ATM, some internal, some not. Some modular, some not.Quoted 8 lines
Quoted 5 lines
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.
Quoted 8 lines
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.