bdev.c (986c6f7c3fc855032f3457a5a1b7fbcc09c375bb) bdev.c (451f0b6f4c44d7b649ae609157b114b71f6d7875)
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 and will be removed.\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 ---