block: fix rootwait=

Failures to look up the gendisk must return -ENODEV so that rootwait
retries the lookup instead of -EINVAL which exits early.

Fixes: cf056a4312 ("init: improve the name_to_dev_t interface")
Reported-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/20230607135746.92995-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Christoph Hellwig 2023-06-07 15:57:46 +02:00 committed by Jens Axboe
parent 3d2af77e31
commit 1341c7d2cc

View File

@ -181,7 +181,7 @@ static int __init devt_from_devname(const char *name, dev_t *devt)
*p = '\0';
*devt = blk_lookup_devt(s, part);
if (*devt)
return 0;
return -ENODEV;
/* try disk name without p<part number> */
if (p < s + 2 || !isdigit(p[-2]) || p[-1] != 'p')
@ -190,7 +190,7 @@ static int __init devt_from_devname(const char *name, dev_t *devt)
*devt = blk_lookup_devt(s, part);
if (*devt)
return 0;
return -EINVAL;
return -ENODEV;
}
static int __init devt_from_devnum(const char *name, dev_t *devt)