On 2021/09/04 10:39, Luis Chamberlain wrote: > diff --git a/fs/block_dev.c b/fs/block_dev.c > index 45df6cbccf12..81a4738910a8 100644 > --- a/fs/block_dev.c > +++ b/fs/block_dev.c > @@ -1144,10 +1144,13 @@ struct block_device *blkdev_get_no_open(dev_t dev) > { > struct block_device *bdev; > struct inode *inode; > + int ret; > > inode = ilookup(blockdev_superblock, dev); > if (!inode) { > - blk_request_module(dev); > + ret = blk_request_module(dev); > + if (ret) > + return NULL; Since e.g. loop_add() from loop_probe() returns -EEXIST when /dev/loop$num already exists (e.g. raced with ioctl(LOOP_CTL_ADD)), isn't unconditionally failing an over-failing? > inode = ilookup(blockdev_superblock, dev); > if (!inode) > return NULL; By the way, Jens, will you pick up https://lkml.kernel.org/r/adb1e792-fc0e-ee81-7ea0-0906fc36419d@xxxxxxxxxxxxxxxxxxx before these "add error handling" changes?