diff mbox series

block: don't return -EINVAL for not found names in devt_from_devname

Message ID 20230622150644.600327-1-hch@lst.de (mailing list archive)
State New, archived
Headers show
Series block: don't return -EINVAL for not found names in devt_from_devname | expand

Commit Message

Christoph Hellwig June 22, 2023, 3:06 p.m. UTC
When we didn't find a device and didn't guess it might be a partition,
it might still show up later, so don't disable rootwait for it by
returning -EINVAL.

Fixes: 079caa35f786 ("init: clear root_wait on all invalid root= strings")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 block/early-lookup.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Jens Axboe June 22, 2023, 3:09 p.m. UTC | #1
On Thu, 22 Jun 2023 17:06:44 +0200, Christoph Hellwig wrote:
> When we didn't find a device and didn't guess it might be a partition,
> it might still show up later, so don't disable rootwait for it by
> returning -EINVAL.
> 
> 

Applied, thanks!

[1/1] block: don't return -EINVAL for not found names in devt_from_devname
      commit: 648fa60fa7de3ca6f6303e1721591ad73def9cf0

Best regards,
Guenter Roeck June 22, 2023, 6:47 p.m. UTC | #2
On 6/22/23 08:06, Christoph Hellwig wrote:
> When we didn't find a device and didn't guess it might be a partition,
> it might still show up later, so don't disable rootwait for it by
> returning -EINVAL.
> 
> Fixes: 079caa35f786 ("init: clear root_wait on all invalid root= strings")
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Christoph Hellwig <hch@lst.de>

Tested-by: Guenter Roeck <linux@roeck-us.net>

> ---
>   block/early-lookup.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/block/early-lookup.c b/block/early-lookup.c
> index a5be3c68ed079c..9e2d5a19de1b3b 100644
> --- a/block/early-lookup.c
> +++ b/block/early-lookup.c
> @@ -174,7 +174,7 @@ static int __init devt_from_devname(const char *name, dev_t *devt)
>   	while (p > s && isdigit(p[-1]))
>   		p--;
>   	if (p == s || !*p || *p == '0')
> -		return -EINVAL;
> +		return -ENODEV;
>   
>   	/* try disk name without <part number> */
>   	part = simple_strtoul(p, NULL, 10);
> @@ -185,7 +185,7 @@ static int __init devt_from_devname(const char *name, dev_t *devt)
>   
>   	/* try disk name without p<part number> */
>   	if (p < s + 2 || !isdigit(p[-2]) || p[-1] != 'p')
> -		return -EINVAL;
> +		return -ENODEV;
>   	p[-1] = '\0';
>   	*devt = blk_lookup_devt(s, part);
>   	if (*devt)
diff mbox series

Patch

diff --git a/block/early-lookup.c b/block/early-lookup.c
index a5be3c68ed079c..9e2d5a19de1b3b 100644
--- a/block/early-lookup.c
+++ b/block/early-lookup.c
@@ -174,7 +174,7 @@  static int __init devt_from_devname(const char *name, dev_t *devt)
 	while (p > s && isdigit(p[-1]))
 		p--;
 	if (p == s || !*p || *p == '0')
-		return -EINVAL;
+		return -ENODEV;
 
 	/* try disk name without <part number> */
 	part = simple_strtoul(p, NULL, 10);
@@ -185,7 +185,7 @@  static int __init devt_from_devname(const char *name, dev_t *devt)
 
 	/* try disk name without p<part number> */
 	if (p < s + 2 || !isdigit(p[-2]) || p[-1] != 'p')
-		return -EINVAL;
+		return -ENODEV;
 	p[-1] = '\0';
 	*devt = blk_lookup_devt(s, part);
 	if (*devt)