Commit a11d7fc2 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

block: remove the bd_bdi in struct block_device

parent edb0872f
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -506,7 +506,7 @@ static int blkdev_common_ioctl(struct block_device *bdev, fmode_t mode,
	case BLKFRASET:
		if(!capable(CAP_SYS_ADMIN))
			return -EACCES;
		bdev->bd_bdi->ra_pages = (arg * 512) / PAGE_SIZE;
		bdev->bd_disk->bdi->ra_pages = (arg * 512) / PAGE_SIZE;
		return 0;
	case BLKRRPART:
		return blkdev_reread_part(bdev, mode);
@@ -556,7 +556,8 @@ int blkdev_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd,
	case BLKFRAGET:
		if (!argp)
			return -EINVAL;
		return put_long(argp, (bdev->bd_bdi->ra_pages*PAGE_SIZE) / 512);
		return put_long(argp,
			(bdev->bd_disk->bdi->ra_pages * PAGE_SIZE) / 512);
	case BLKGETSIZE:
		size = i_size_read(bdev->bd_inode);
		if ((size >> 9) > ~0UL)
@@ -628,7 +629,7 @@ long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg)
		if (!argp)
			return -EINVAL;
		return compat_put_long(argp,
			       (bdev->bd_bdi->ra_pages * PAGE_SIZE) / 512);
			(bdev->bd_disk->bdi->ra_pages * PAGE_SIZE) / 512);
	case BLKGETSIZE:
		size = i_size_read(bdev->bd_inode);
		if ((size >> 9) > ~0UL)
+1 −12
Original line number Diff line number Diff line
@@ -801,7 +801,6 @@ static struct inode *bdev_alloc_inode(struct super_block *sb)
	if (!ei)
		return NULL;
	memset(&ei->bdev, 0, sizeof(ei->bdev));
	ei->bdev.bd_bdi = &noop_backing_dev_info;
	return &ei->vfs_inode;
}

@@ -826,16 +825,11 @@ static void init_once(void *data)

static void bdev_evict_inode(struct inode *inode)
{
	struct block_device *bdev = &BDEV_I(inode)->bdev;
	truncate_inode_pages_final(&inode->i_data);
	invalidate_inode_buffers(inode); /* is it needed here? */
	clear_inode(inode);
	/* Detach inode from wb early as bdi_put() may free bdi->wb */
	inode_detach_wb(inode);
	if (bdev->bd_bdi != &noop_backing_dev_info) {
		bdi_put(bdev->bd_bdi);
		bdev->bd_bdi = &noop_backing_dev_info;
	}
}

static const struct super_operations bdev_sops = {
@@ -1084,11 +1078,8 @@ static int blkdev_get_whole(struct block_device *bdev, fmode_t mode)
		}
	}

	if (!bdev->bd_openers) {
	if (!bdev->bd_openers)
		set_init_blocksize(bdev);
		if (bdev->bd_bdi == &noop_backing_dev_info)
			bdev->bd_bdi = bdi_get(disk->bdi);
	}
	if (test_bit(GD_NEED_PART_SCAN, &disk->state))
		bdev_disk_changed(disk, false);
	bdev->bd_openers++;
@@ -1121,8 +1112,6 @@ static int blkdev_get_part(struct block_device *part, fmode_t mode)

	disk->open_partitions++;
	set_init_blocksize(part);
	if (part->bd_bdi == &noop_backing_dev_info)
		part->bd_bdi = bdi_get(disk->bdi);
done:
	part->bd_openers++;
	return 0;
+1 −1
Original line number Diff line number Diff line
@@ -1053,7 +1053,7 @@ nilfs_fill_super(struct super_block *sb, void *data, int silent)
	sb->s_time_gran = 1;
	sb->s_max_links = NILFS_LINK_MAX;

	sb->s_bdi = bdi_get(sb->s_bdev->bd_bdi);
	sb->s_bdi = bdi_get(sb->s_bdev->bd_disk->bdi);

	err = load_nilfs(nilfs, sb);
	if (err)
+1 −1
Original line number Diff line number Diff line
@@ -1203,7 +1203,7 @@ static int set_bdev_super(struct super_block *s, void *data)
{
	s->s_bdev = data;
	s->s_dev = s->s_bdev->bd_dev;
	s->s_bdi = bdi_get(s->s_bdev->bd_bdi);
	s->s_bdi = bdi_get(s->s_bdev->bd_disk->bdi);

	if (blk_queue_stable_writes(s->s_bdev->bd_disk->queue))
		s->s_iflags |= SB_I_STABLE_WRITES;
+1 −1
Original line number Diff line number Diff line
@@ -844,7 +844,7 @@ xfs_buf_readahead_map(
{
	struct xfs_buf		*bp;

	if (bdi_read_congested(target->bt_bdev->bd_bdi))
	if (bdi_read_congested(target->bt_bdev->bd_disk->bdi))
		return;

	xfs_buf_read_map(target, map, nmaps,
Loading