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 --- |