diff --git a/fs/block_dev.c b/fs/block_dev.c
index 7346c96308a581546b7f5773fd94d41f9a3c7345..204a7632c5118b6ddf32c25e7f7277696f16a288 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -734,6 +734,7 @@ static struct block_device *bd_start_claiming(struct block_device *bdev,
 		return ERR_PTR(-ENXIO);
 
 	whole = bdget_disk(disk, 0);
+	module_put(disk->fops->owner);
 	put_disk(disk);
 	if (!whole)
 		return ERR_PTR(-ENOMEM);