Thread (11 messages) 11 messages, 3 authors, 2021-09-08

Re: [PATCH 1/2] block: make __register_blkdev() return an error

From: Luis Chamberlain <mcgrof@kernel.org>
Date: 2021-09-05 18:11:42

On Sat, Sep 04, 2021 at 11:49:06AM +0900, Tetsuo Handa wrote:
On 2021/09/04 10:39, Luis Chamberlain wrote:
quoted
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?
It's not clear to me how. What do we loose by capturing the failure on
blk_request_module()?

  Luis
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help