| From: Jianyong Wu <jianyong.wu@arm.com> |
| Subject: init/mount: print pretty name of root device when panicing |
| Date: Thu, 7 Sep 2023 09:10:25 +0000 |
| |
| Given a wrong root device, current log may not give the pretty name |
| which is useful to locate root cause. |
| |
| For example, there are 2 blk devs in a VM, /dev/vda which has 2 partitials |
| /dev/vda1 and /dev/vda2 and /dev/vdb which is blank. /dev/vda2 is the |
| right root dev. When set "root=/dev/vdb", we get error log: |
| |
| [ 0.635575] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(254,16) |
| |
| It's not straightforward to find out the root cause as there is lack of |
| the root devive name therefore hard for people to get those info from the |
| device number, in the example, (254,16). |
| |
| It is more comprehensive way to hint the root cause if pretty name is |
| given here, like: |
| |
| [ 0.559887] Kernel panic - not syncing: VFS: Unable to mount root fs on "/dev/vdb" or unknown-block(254,16) |
| |
| Link: https://lkml.kernel.org/r/20230907091025.3436878-1-jianyong.wu@arm.com |
| Signed-off-by: Jianyong Wu <jianyong.wu@arm.com> |
| Cc: Christian Brauner <brauner@kernel.org> |
| Cc: Jens Axboe <axboe@kernel.dk> |
| Cc: Justin He <justin.he@arm.com> |
| Cc: Loic Poulain <loic.poulain@linaro.org> |
| Cc: Wolfram Sang <wsa+renesas@sang-engineering.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| init/do_mounts.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/init/do_mounts.c~init-mount-print-pretty-name-of-root-device-when-panics |
| +++ a/init/do_mounts.c |
| @@ -244,7 +244,7 @@ retry: |
| for (i = 0, p = fs_names; i < num_fs; i++, p += strlen(p)+1) |
| printk(" %s", p); |
| printk("\n"); |
| - panic("VFS: Unable to mount root fs on %s", b); |
| + panic("VFS: Unable to mount root fs on \"%s\" or %s", pretty_name, b); |
| out: |
| put_page(page); |
| } |
| _ |