diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2007-08-29 20:34:12 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2008-10-21 07:47:26 -0400 |
commit | 633a08b81206122469365b4c72eaeb71f04f2cb4 (patch) | |
tree | 9cd30507efd30645d30d351c7ad0d5966f806532 /drivers/md/dm-linear.c | |
parent | a0eb62a0a4470fef5a5f41e7f1442fdd667220ef (diff) |
[PATCH] introduce __blkdev_driver_ioctl()
Analog of blkdev_driver_ioctl() with sane arguments. For
now uses fake struct file, by the end of the series it won't
and blkdev_driver_ioctl() will become a wrapper around it.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'drivers/md/dm-linear.c')
-rw-r--r-- | drivers/md/dm-linear.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/drivers/md/dm-linear.c b/drivers/md/dm-linear.c index fa358385eed3..373442b1e98f 100644 --- a/drivers/md/dm-linear.c +++ b/drivers/md/dm-linear.c | |||
@@ -114,15 +114,7 @@ static int linear_ioctl(struct dm_target *ti, unsigned int cmd, | |||
114 | unsigned long arg) | 114 | unsigned long arg) |
115 | { | 115 | { |
116 | struct linear_c *lc = (struct linear_c *) ti->private; | 116 | struct linear_c *lc = (struct linear_c *) ti->private; |
117 | struct block_device *bdev = lc->dev->bdev; | 117 | return __blkdev_driver_ioctl(lc->dev->bdev, lc->dev->mode, cmd, arg); |
118 | struct file fake_file = {}; | ||
119 | struct dentry fake_dentry = {}; | ||
120 | |||
121 | fake_file.f_mode = lc->dev->mode; | ||
122 | fake_file.f_path.dentry = &fake_dentry; | ||
123 | fake_dentry.d_inode = bdev->bd_inode; | ||
124 | |||
125 | return blkdev_driver_ioctl(bdev->bd_inode, &fake_file, bdev->bd_disk, cmd, arg); | ||
126 | } | 118 | } |
127 | 119 | ||
128 | static int linear_merge(struct dm_target *ti, struct bvec_merge_data *bvm, | 120 | static int linear_merge(struct dm_target *ti, struct bvec_merge_data *bvm, |