linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 01/15] dm: support ioctls on mapped devices
@ 2006-06-21 19:31 Alasdair G Kergon
  2006-06-22  3:52 ` Andrew Morton
  2006-07-05  3:22 ` Arnd Bergmann
  0 siblings, 2 replies; 13+ messages in thread
From: Alasdair G Kergon @ 2006-06-21 19:31 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Milan Broz

From: Milan Broz <mbroz@redhat.com>
 
Extend the core device-mapper infrastructure to accept arbitrary ioctls
on a mapped device provided that it has exactly one target and it is 
capable of supporting ioctls.

[We can't use unlocked_ioctl because we need 'inode': 'file' might be NULL.
Is it worth changing this?]

Signed-off-by: Milan Broz <mbroz@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>

Index: linux-2.6.17/drivers/md/dm.c
===================================================================
--- linux-2.6.17.orig/drivers/md/dm.c	2006-06-21 14:45:28.000000000 +0100
+++ linux-2.6.17/drivers/md/dm.c	2006-06-21 18:32:01.000000000 +0100
@@ -20,6 +20,7 @@
 #include <linux/idr.h>
 #include <linux/hdreg.h>
 #include <linux/blktrace_api.h>
+#include <linux/smp_lock.h>
 
 static const char *_name = DM_NAME;
 
@@ -257,6 +258,45 @@ static int dm_blk_getgeo(struct block_de
 	return dm_get_geometry(md, geo);
 }
 
+static int dm_blk_ioctl(struct inode *inode, struct file *file,
+			unsigned int cmd, unsigned long arg)
+{
+	struct mapped_device *md;
+	struct dm_table *map;
+	struct dm_target *tgt;
+	int r = -ENOTTY;
+
+	/* We don't really need this lock, but we do need 'inode'. */
+	unlock_kernel();
+
+	md = inode->i_bdev->bd_disk->private_data;
+
+	map = dm_get_table(md);
+
+	if (!map || !dm_table_get_size(map))
+		goto out;
+
+	/* We only support devices that have a single target */
+	if (dm_table_get_num_targets(map) != 1)
+		goto out;
+
+	tgt = dm_table_get_target(map, 0);
+
+	if (dm_suspended(md)) {
+		r = -EAGAIN;
+		goto out;
+	}
+
+	if (tgt->type->ioctl)
+		r = tgt->type->ioctl(tgt, inode, file, cmd, arg);
+
+out:
+	dm_table_put(map);
+
+	lock_kernel();
+	return r;
+}
+
 static inline struct dm_io *alloc_io(struct mapped_device *md)
 {
 	return mempool_alloc(md->io_pool, GFP_NOIO);
@@ -1348,6 +1388,7 @@ int dm_suspended(struct mapped_device *m
 static struct block_device_operations dm_blk_dops = {
 	.open = dm_blk_open,
 	.release = dm_blk_close,
+	.ioctl = dm_blk_ioctl,
 	.getgeo = dm_blk_getgeo,
 	.owner = THIS_MODULE
 };
Index: linux-2.6.17/include/linux/device-mapper.h
===================================================================
--- linux-2.6.17.orig/include/linux/device-mapper.h	2006-06-21 14:45:28.000000000 +0100
+++ linux-2.6.17/include/linux/device-mapper.h	2006-06-21 17:45:05.000000000 +0100
@@ -61,6 +61,10 @@ typedef int (*dm_status_fn) (struct dm_t
 
 typedef int (*dm_message_fn) (struct dm_target *ti, unsigned argc, char **argv);
 
+typedef int (*dm_ioctl_fn) (struct dm_target *ti, struct inode *inode,
+			    struct file *filp, unsigned int cmd,
+			    unsigned long arg);
+
 void dm_error(const char *message);
 
 /*
@@ -88,6 +92,7 @@ struct target_type {
 	dm_resume_fn resume;
 	dm_status_fn status;
 	dm_message_fn message;
+	dm_ioctl_fn ioctl;
 };
 
 struct io_restrictions {
Index: linux-2.6.17/include/linux/dm-ioctl.h
===================================================================
--- linux-2.6.17.orig/include/linux/dm-ioctl.h	2006-06-21 14:45:28.000000000 +0100
+++ linux-2.6.17/include/linux/dm-ioctl.h	2006-06-21 17:44:41.000000000 +0100
@@ -285,9 +285,9 @@ typedef char ioctl_struct[308];
 #define DM_DEV_SET_GEOMETRY	_IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
 
 #define DM_VERSION_MAJOR	4
-#define DM_VERSION_MINOR	6
+#define DM_VERSION_MINOR	7
 #define DM_VERSION_PATCHLEVEL	0
-#define DM_VERSION_EXTRA	"-ioctl (2006-02-17)"
+#define DM_VERSION_EXTRA	"-ioctl (2006-05-30)"
 
 /* Status bits */
 #define DM_READONLY_FLAG	(1 << 0) /* In/Out */

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 01/15] dm: support ioctls on mapped devices
  2006-06-21 19:31 [PATCH 01/15] dm: support ioctls on mapped devices Alasdair G Kergon
@ 2006-06-22  3:52 ` Andrew Morton
  2006-06-22  8:15   ` Milan Broz
  2006-06-22 13:21   ` Alasdair G Kergon
  2006-07-05  3:22 ` Arnd Bergmann
  1 sibling, 2 replies; 13+ messages in thread
From: Andrew Morton @ 2006-06-22  3:52 UTC (permalink / raw)
  To: Alasdair G Kergon; +Cc: linux-kernel, mbroz

On Wed, 21 Jun 2006 20:31:21 +0100
Alasdair G Kergon <agk@redhat.com> wrote:

> From: Milan Broz <mbroz@redhat.com>
>  
> Extend the core device-mapper infrastructure to accept arbitrary ioctls
> on a mapped device provided that it has exactly one target and it is 
> capable of supporting ioctls.

I don't understand that.  We're taking an ioctl against a dm device and
we're passing it through to an underlying device?  Or something else?

Care to flesh this out a bit?

> [We can't use unlocked_ioctl because we need 'inode': 'file' might be NULL.
> Is it worth changing this?]

It _should_ be possible to use unlocked_ioctl() - unlocked_ioctl() would be
pretty useless if someone was passing it a NULL file*.  More details?


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 01/15] dm: support ioctls on mapped devices
  2006-06-22  3:52 ` Andrew Morton
@ 2006-06-22  8:15   ` Milan Broz
  2006-06-22  8:29     ` Andrew Morton
  2006-06-22 13:21   ` Alasdair G Kergon
  1 sibling, 1 reply; 13+ messages in thread
From: Milan Broz @ 2006-06-22  8:15 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Alasdair G Kergon, linux-kernel

Andrew Morton wrote:
> On Wed, 21 Jun 2006 20:31:21 +0100
> Alasdair G Kergon <agk@redhat.com> wrote:
> 
>> From: Milan Broz <mbroz@redhat.com>
>>  
>> Extend the core device-mapper infrastructure to accept arbitrary ioctls
>> on a mapped device provided that it has exactly one target and it is 
>> capable of supporting ioctls.
> 
> I don't understand that.  We're taking an ioctl against a dm device and
> we're passing it through to an underlying device?  Or something else?

Solving this situation: logical volume (say /dev/mapper/lv1) mapped in dm 
to single device (/dev/sda):

If there is need to send ioctl you must know that /dev/mapper/lv1
is mapped to /dev/sda (and use /dev/sda for ioctl).
This is dm work -  so send ioctl to /dev/mapper/lv1 directly
and let dm decide what to do.

This is supported only for single mapping. If there are more than one target
it will return -ENOTTY.

>> [We can't use unlocked_ioctl because we need 'inode': 'file' might be NULL.
>> Is it worth changing this?]
> 
> It _should_ be possible to use unlocked_ioctl() - unlocked_ioctl() would be
> pretty useless if someone was passing it a NULL file*.  More details?

yes, 
(I prefer change block code to not pass NULL and use unlocked_ioctl,
- Alasdair ?)

see

drivers/char/raw.c:
126: return blkdev_ioctl(bdev->bd_inode, *NULL*, command, arg);

and block/ioctl.c: [file = NULL here]
206: if (disk->fops->unlocked_ioctl)
207:	return disk->fops->unlocked_ioctl(*file*, cmd, arg);


-- 
Milan Broz
mbroz@redhat.com




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 01/15] dm: support ioctls on mapped devices
  2006-06-22  8:15   ` Milan Broz
@ 2006-06-22  8:29     ` Andrew Morton
  2006-06-22 15:17       ` Alasdair G Kergon
  0 siblings, 1 reply; 13+ messages in thread
From: Andrew Morton @ 2006-06-22  8:29 UTC (permalink / raw)
  To: Milan Broz; +Cc: agk, linux-kernel

On Thu, 22 Jun 2006 10:15:30 +0200
Milan Broz <mbroz@redhat.com> wrote:

> Andrew Morton wrote:
> > On Wed, 21 Jun 2006 20:31:21 +0100
> > Alasdair G Kergon <agk@redhat.com> wrote:
> > 
> >> From: Milan Broz <mbroz@redhat.com>
> >>  
> >> Extend the core device-mapper infrastructure to accept arbitrary ioctls
> >> on a mapped device provided that it has exactly one target and it is 
> >> capable of supporting ioctls.
> > 
> > I don't understand that.  We're taking an ioctl against a dm device and
> > we're passing it through to an underlying device?  Or something else?
> 
> Solving this situation: logical volume (say /dev/mapper/lv1) mapped in dm 
> to single device (/dev/sda):
> 
> If there is need to send ioctl you must know that /dev/mapper/lv1
> is mapped to /dev/sda (and use /dev/sda for ioctl).
> This is dm work -  so send ioctl to /dev/mapper/lv1 directly
> and let dm decide what to do.

OK.  I do think dm needs to remember /dev/sda's file* to get this right
though.  That's where the ->ioctl methods are.

> This is supported only for single mapping. If there are more than one target
> it will return -ENOTTY.
> 
> >> [We can't use unlocked_ioctl because we need 'inode': 'file' might be NULL.
> >> Is it worth changing this?]
> > 
> > It _should_ be possible to use unlocked_ioctl() - unlocked_ioctl() would be
> > pretty useless if someone was passing it a NULL file*.  More details?
> 
> yes, 
> (I prefer change block code to not pass NULL and use unlocked_ioctl,
> - Alasdair ?)
> 
> see
> 
> drivers/char/raw.c:
> 126: return blkdev_ioctl(bdev->bd_inode, *NULL*, command, arg);

Oh dear.  raw_open() doesn't have a file* for the device.

> and block/ioctl.c: [file = NULL here]
> 206: if (disk->fops->unlocked_ioctl)
> 207:	return disk->fops->unlocked_ioctl(*file*, cmd, arg);



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 01/15] dm: support ioctls on mapped devices
  2006-06-22  3:52 ` Andrew Morton
  2006-06-22  8:15   ` Milan Broz
@ 2006-06-22 13:21   ` Alasdair G Kergon
  1 sibling, 0 replies; 13+ messages in thread
From: Alasdair G Kergon @ 2006-06-22 13:21 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, mbroz

On Wed, Jun 21, 2006 at 08:52:06PM -0700, Andrew Morton wrote:
> I don't understand that.  We're taking an ioctl against a dm device and
> we're passing it through to an underlying device?  Or something else?
 
Indeed.  The motivation behind this came from multipath: people want to
issue certain types of ioctls directly against a dm multipath device and
have them pass through one of the paths to the underlying device.
(Otherwise they'd need a knowledge of dm internals to poke around the tree
of dm devices and probe path statuses to determine the correct path(s) to
use - effectively implementing 'multipath' ioctls themselves from userspace
with unavoidable races.)

Alasdair
-- 
agk@redhat.com

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 01/15] dm: support ioctls on mapped devices
  2006-06-22  8:29     ` Andrew Morton
@ 2006-06-22 15:17       ` Alasdair G Kergon
  2006-06-22 16:55         ` Andrew Morton
  0 siblings, 1 reply; 13+ messages in thread
From: Alasdair G Kergon @ 2006-06-22 15:17 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Milan Broz, linux-kernel

On Thu, Jun 22, 2006 at 01:29:57AM -0700, Andrew Morton wrote:
> OK.  I do think dm needs to remember /dev/sda's file* to get this right
> though.  That's where the ->ioctl methods are.

> Oh dear.  raw_open() doesn't have a file* for the device.
 
Similar with device-mapper: in normal usage dm only sees major:minor.

Yes, the filp dm passes along is incorrect:

- return blkdev_driver_ioctl(bdev->bd_inode, filp, bdev->bd_disk, cmd, arg);
+ return blkdev_driver_ioctl(bdev->bd_inode, NULL, bdev->bd_disk, cmd, arg);

But should unlocked_ioctl become ?

- long (*unlocked_ioctl) (struct file *, unsigned, unsigned long);
+ long (*unlocked_ioctl) (struct inode *, struct file *, unsigned, unsigned long);

so it can be used for block devices?

See also block/scsi_ioctl.c:201 verify_command()  [scsi_cmd_ioctl]
         * file can be NULL from ioctl_by_bdev()...

Or should we be working towards eliminating interfaces that use device numbers?

Alasdair
-- 
agk@redhat.com

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 01/15] dm: support ioctls on mapped devices
  2006-06-22 15:17       ` Alasdair G Kergon
@ 2006-06-22 16:55         ` Andrew Morton
  2006-06-23  3:31           ` Kevin Corry
  2006-06-23 10:00           ` Christoph Hellwig
  0 siblings, 2 replies; 13+ messages in thread
From: Andrew Morton @ 2006-06-22 16:55 UTC (permalink / raw)
  To: Alasdair G Kergon; +Cc: mbroz, linux-kernel, Christoph Hellwig

On Thu, 22 Jun 2006 16:17:21 +0100
Alasdair G Kergon <agk@redhat.com> wrote:

> On Thu, Jun 22, 2006 at 01:29:57AM -0700, Andrew Morton wrote:
> > OK.  I do think dm needs to remember /dev/sda's file* to get this right
> > though.  That's where the ->ioctl methods are.
> 
> > Oh dear.  raw_open() doesn't have a file* for the device.
>  
> Similar with device-mapper: in normal usage dm only sees major:minor.
> 
> Yes, the filp dm passes along is incorrect:
> 
> - return blkdev_driver_ioctl(bdev->bd_inode, filp, bdev->bd_disk, cmd, arg);
> + return blkdev_driver_ioctl(bdev->bd_inode, NULL, bdev->bd_disk, cmd, arg);
> 
> But should unlocked_ioctl become ?
> 
> - long (*unlocked_ioctl) (struct file *, unsigned, unsigned long);
> + long (*unlocked_ioctl) (struct inode *, struct file *, unsigned, unsigned long);
> 
> so it can be used for block devices?

Perhaps it should (have).  It's a bit nasty, but we do have at least two
internal callers who don't have a file*.

The alternative would be to cook up a fake file* like blkdev_get() does,
but we don't want to propagate that practice.

Oh well.  I suppose a lock_kernel() won't kill us.

> See also block/scsi_ioctl.c:201 verify_command()  [scsi_cmd_ioctl]
>          * file can be NULL from ioctl_by_bdev()...
> 
> Or should we be working towards eliminating interfaces that use device numbers?

If possible.  I guess that would require DM to track the devices with
file*'s or inode*'s or bdev*'s.  Which, I assume, would be non-trivial.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 01/15] dm: support ioctls on mapped devices
  2006-06-22 16:55         ` Andrew Morton
@ 2006-06-23  3:31           ` Kevin Corry
  2006-06-23  3:49             ` Andrew Morton
  2006-06-23 10:00           ` Christoph Hellwig
  1 sibling, 1 reply; 13+ messages in thread
From: Kevin Corry @ 2006-06-23  3:31 UTC (permalink / raw)
  To: linux-kernel, Andrew Morton, Alasdair G Kergon; +Cc: mbroz, Christoph Hellwig

On Thu June 22 2006 11:55 am, Andrew Morton wrote:
> On Thu, 22 Jun 2006 16:17:21 +0100 Alasdair G Kergon <agk@redhat.com> wrote:
> > On Thu, Jun 22, 2006 at 01:29:57AM -0700, Andrew Morton wrote:
> > See also block/scsi_ioctl.c:201 verify_command()  [scsi_cmd_ioctl]
> >          * file can be NULL from ioctl_by_bdev()...
> >
> > Or should we be working towards eliminating interfaces that use device
> > numbers?
>
> If possible.  I guess that would require DM to track the devices with
> file*'s or inode*'s or bdev*'s.  Which, I assume, would be non-trivial.

There already is a bdev pointer available. Each "consumed" device get a struct 
dm_dev, which has a *bdev field. From the bdev, it looks like we should be 
able to get to the gendisk, then the block_device_operations, and then the 
ioctl routine (if it exists). Correct?

-- 
Kevin Corry
kevcorry@us.ibm.com
http://www.ibm.com/linux/
http://evms.sourceforge.net/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 01/15] dm: support ioctls on mapped devices
  2006-06-23  3:31           ` Kevin Corry
@ 2006-06-23  3:49             ` Andrew Morton
  2006-06-23 10:01               ` Christoph Hellwig
  0 siblings, 1 reply; 13+ messages in thread
From: Andrew Morton @ 2006-06-23  3:49 UTC (permalink / raw)
  To: Kevin Corry; +Cc: linux-kernel, agk, mbroz, hch

On Thu, 22 Jun 2006 22:31:16 -0500
Kevin Corry <kevcorry@us.ibm.com> wrote:

> On Thu June 22 2006 11:55 am, Andrew Morton wrote:
> > On Thu, 22 Jun 2006 16:17:21 +0100 Alasdair G Kergon <agk@redhat.com> wrote:
> > > On Thu, Jun 22, 2006 at 01:29:57AM -0700, Andrew Morton wrote:
> > > See also block/scsi_ioctl.c:201 verify_command()  [scsi_cmd_ioctl]
> > >          * file can be NULL from ioctl_by_bdev()...
> > >
> > > Or should we be working towards eliminating interfaces that use device
> > > numbers?
> >
> > If possible.  I guess that would require DM to track the devices with
> > file*'s or inode*'s or bdev*'s.  Which, I assume, would be non-trivial.
> 
> There already is a bdev pointer available. Each "consumed" device get a struct 
> dm_dev, which has a *bdev field. From the bdev, it looks like we should be 
> able to get to the gendisk, then the block_device_operations, and then the 
> ioctl routine (if it exists). Correct?
> 

My head is spinning in a twisty maze of ioctls.  What _should_ we call? 
file_operations.foo_ioctl() or block_device_operations.foo_ioctl() or
blkdev_ioctl()?

I think as far as the user is concerned, file_operations.foo_ioctl(),
because that's what the user would end up calling against /dev/sda. 
Whether that's always, reliably, equivalent to
block_device_operations.foo_ioctl() I am presently disinclined to spare
time to discover.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 01/15] dm: support ioctls on mapped devices
  2006-06-22 16:55         ` Andrew Morton
  2006-06-23  3:31           ` Kevin Corry
@ 2006-06-23 10:00           ` Christoph Hellwig
       [not found]             ` <20060623032108.28debec2.akpm@osdl.org>
  1 sibling, 1 reply; 13+ messages in thread
From: Christoph Hellwig @ 2006-06-23 10:00 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Alasdair G Kergon, mbroz, linux-kernel, Christoph Hellwig

On Thu, Jun 22, 2006 at 09:55:51AM -0700, Andrew Morton wrote:
> > - long (*unlocked_ioctl) (struct file *, unsigned, unsigned long);
> > + long (*unlocked_ioctl) (struct inode *, struct file *, unsigned, unsigned long);
> > 
> > so it can be used for block devices?
> 
> Perhaps it should (have).  It's a bit nasty, but we do have at least two
> internal callers who don't have a file*.
> 
> The alternative would be to cook up a fake file* like blkdev_get() does,
> but we don't want to propagate that practice.

Faking up the file struct is the only viable short-term option.  It
should be done in ioctl_by_bdev which every kernel blockdevice ioctl
user should use.  Long-term we should not pass a struct file but
a struct block_device *, but braindamage in floppy.c prevents that.


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 01/15] dm: support ioctls on mapped devices
  2006-06-23  3:49             ` Andrew Morton
@ 2006-06-23 10:01               ` Christoph Hellwig
  0 siblings, 0 replies; 13+ messages in thread
From: Christoph Hellwig @ 2006-06-23 10:01 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Kevin Corry, linux-kernel, agk, mbroz, hch

On Thu, Jun 22, 2006 at 08:49:07PM -0700, Andrew Morton wrote:
> My head is spinning in a twisty maze of ioctls.  What _should_ we call? 
> file_operations.foo_ioctl() or block_device_operations.foo_ioctl() or
> blkdev_ioctl()?

Neither.  The only valid way to perform ioctls on blockdevices from
kernelspace is ioctl_by_bdev.


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 01/15] dm: support ioctls on mapped devices
       [not found]             ` <20060623032108.28debec2.akpm@osdl.org>
@ 2006-06-23 13:13               ` Milan Broz
  0 siblings, 0 replies; 13+ messages in thread
From: Milan Broz @ 2006-06-23 13:13 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Christoph Hellwig, agk, linux-kernel


Andrew Morton wrote:
> On Fri, 23 Jun 2006 12:00:18 +0200
> Christoph Hellwig <hch@lst.de> wrote:
> 
>> On Thu, Jun 22, 2006 at 09:55:51AM -0700, Andrew Morton wrote:
>>>> - long (*unlocked_ioctl) (struct file *, unsigned, unsigned long);
>>>> + long (*unlocked_ioctl) (struct inode *, struct file *, unsigned, unsigned long);
>>>>
>>>> so it can be used for block devices?
>>> Perhaps it should (have).  It's a bit nasty, but we do have at least two
>>> internal callers who don't have a file*.
>>>
>>> The alternative would be to cook up a fake file* like blkdev_get() does,
>>> but we don't want to propagate that practice.
>> Faking up the file struct is the only viable short-term option.  It
>> should be done in ioctl_by_bdev which every kernel blockdevice ioctl
>> user should use.  Long-term we should not pass a struct file but
>> a struct block_device *, but braindamage in floppy.c prevents that.
> 
> Ho hum.  The short-term will continue to be long-term.
> 
> Milan, I've lost the plot on where we stand on these patches.  I think some
> rework is needed, yes?

yes, 
we need at least create fake file.

Milan

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 01/15] dm: support ioctls on mapped devices
  2006-06-21 19:31 [PATCH 01/15] dm: support ioctls on mapped devices Alasdair G Kergon
  2006-06-22  3:52 ` Andrew Morton
@ 2006-07-05  3:22 ` Arnd Bergmann
  1 sibling, 0 replies; 13+ messages in thread
From: Arnd Bergmann @ 2006-07-05  3:22 UTC (permalink / raw)
  To: Alasdair G Kergon; +Cc: Andrew Morton, linux-kernel, Milan Broz

Am Wednesday 21 June 2006 21:31 schrieb Alasdair G Kergon:
>  static struct block_device_operations dm_blk_dops = {
>         .open = dm_blk_open,
>         .release = dm_blk_close,
> +       .ioctl = dm_blk_ioctl,
>         .getgeo = dm_blk_getgeo,
>         .owner = THIS_MODULE

I guess this also needs a ->compat_ioctl method, otherwise it won't
work for ioctl numbers that have a compat_ioctl implementation in the
low-level device driver.

	Arnd <><

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2006-07-05  3:21 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-06-21 19:31 [PATCH 01/15] dm: support ioctls on mapped devices Alasdair G Kergon
2006-06-22  3:52 ` Andrew Morton
2006-06-22  8:15   ` Milan Broz
2006-06-22  8:29     ` Andrew Morton
2006-06-22 15:17       ` Alasdair G Kergon
2006-06-22 16:55         ` Andrew Morton
2006-06-23  3:31           ` Kevin Corry
2006-06-23  3:49             ` Andrew Morton
2006-06-23 10:01               ` Christoph Hellwig
2006-06-23 10:00           ` Christoph Hellwig
     [not found]             ` <20060623032108.28debec2.akpm@osdl.org>
2006-06-23 13:13               ` Milan Broz
2006-06-22 13:21   ` Alasdair G Kergon
2006-07-05  3:22 ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).