bdev.c (063565aca3734de4e73639a0e460a58d9418b3cd) bdev.c (fbdee71bb5d8d054e1bdb5af4c540f2cb86fe296)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 1991, 1992 Linus Torvalds
4 * Copyright (C) 2001 Andrea Arcangeli <andrea@suse.de> SuSE
5 * Copyright (C) 2016 - 2020 Christoph Hellwig
6 */
7
8#include <linux/init.h>

--- 719 unchanged lines hidden (view full) ---

728}
729
730struct block_device *blkdev_get_no_open(dev_t dev)
731{
732 struct block_device *bdev;
733 struct inode *inode;
734
735 inode = ilookup(blockdev_superblock, dev);
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 1991, 1992 Linus Torvalds
4 * Copyright (C) 2001 Andrea Arcangeli <andrea@suse.de> SuSE
5 * Copyright (C) 2016 - 2020 Christoph Hellwig
6 */
7
8#include <linux/init.h>

--- 719 unchanged lines hidden (view full) ---

728}
729
730struct block_device *blkdev_get_no_open(dev_t dev)
731{
732 struct block_device *bdev;
733 struct inode *inode;
734
735 inode = ilookup(blockdev_superblock, dev);
736 if (!inode) {
736 if (!inode && IS_ENABLED(CONFIG_BLOCK_LEGACY_AUTOLOAD)) {
737 blk_request_module(dev);
738 inode = ilookup(blockdev_superblock, dev);
737 blk_request_module(dev);
738 inode = ilookup(blockdev_superblock, dev);
739 if (!inode)
740 return NULL;
739 if (inode)
740 pr_warn_ratelimited(
741"block device autoloading is deprecated. It will be removed in Linux 5.19\n");
741 }
742 }
743 if (!inode)
744 return NULL;
742
743 /* switch from the inode reference to a device mode one: */
744 bdev = &BDEV_I(inode)->bdev;
745 if (!kobject_get_unless_zero(&bdev->bd_device.kobj))
746 bdev = NULL;
747 iput(inode);
748 return bdev;
749}

--- 314 unchanged lines hidden ---
745
746 /* switch from the inode reference to a device mode one: */
747 bdev = &BDEV_I(inode)->bdev;
748 if (!kobject_get_unless_zero(&bdev->bd_device.kobj))
749 bdev = NULL;
750 iput(inode);
751 return bdev;
752}

--- 314 unchanged lines hidden ---