// SPDX-License-Identifier: GPL-2.0-only
/*
- * linux/fs/block_dev.c
- *
* Copyright (C) 1991, 1992 Linus Torvalds
* Copyright (C) 2001 Andrea Arcangeli <andrea@suse.de> SuSE
+ * Copyright (C) 2016 - 2020 Christoph Hellwig
*/
#include <linux/init.h>
struct bdev_inode {
struct block_device bdev;
- struct hd_struct hd;
struct inode vfs_inode;
};
iput(inode);
return NULL;
}
- bdev->bd_part = &BDEV_I(inode)->hd;
- memset(bdev->bd_part, 0, sizeof(*bdev->bd_part));
- bdev->bd_part->bdev = bdev;
return bdev;
}
}
EXPORT_SYMBOL(bdgrab);
-struct block_device *bdget_part(struct hd_struct *part)
-{
- return bdget(part_devt(part));
-}
-
long nr_blockdev_pages(void)
{
struct inode *inode;
if (ret)
return ret;
} else {
- struct block_device *whole = bdget_disk(disk, 0);
+ struct block_device *whole = bdgrab(disk->part0);
mutex_lock_nested(&whole->bd_mutex, 1);
ret = __blkdev_get(whole, mode);