Commit ab17ffa4 authored by Milan Broz's avatar Milan Broz Committed by Linus Torvalds
Browse files

[PATCH] dm linear: support ioctls



When an ioctl is performed on a device with a linear target, simply pass it on
to the underlying block device.

Note that the ioctl will pass through the filtering in blkdev_ioctl() twice.

Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent aa129a22
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -98,14 +98,25 @@ static int linear_status(struct dm_target *ti, status_type_t type,
	return 0;
}

static int linear_ioctl(struct dm_target *ti, struct inode *inode,
			struct file *filp, unsigned int cmd,
			unsigned long arg)
{
	struct linear_c *lc = (struct linear_c *) ti->private;
	struct block_device *bdev = lc->dev->bdev;

	return blkdev_ioctl(bdev->bd_inode, filp, cmd, arg);
}

static struct target_type linear_target = {
	.name   = "linear",
	.version= {1, 0, 1},
	.version= {1, 0, 2},
	.module = THIS_MODULE,
	.ctr    = linear_ctr,
	.dtr    = linear_dtr,
	.map    = linear_map,
	.status = linear_status,
	.ioctl  = linear_ioctl,
};

int __init dm_linear_init(void)