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