]> sourceware.org Git - dm.git/commitdiff
Proposed changes to the ioctl interface to fix alignment issues on some
authorAlasdair Kergon <agk@redhat.com>
Fri, 28 Mar 2003 19:05:11 +0000 (19:05 +0000)
committerAlasdair Kergon <agk@redhat.com>
Fri, 28 Mar 2003 19:05:11 +0000 (19:05 +0000)
architectures and specify an explicit width for every numeric field.

patches/linux-2.4.20-interface-v3.patch [new file with mode: 0644]

diff --git a/patches/linux-2.4.20-interface-v3.patch b/patches/linux-2.4.20-interface-v3.patch
new file mode 100644 (file)
index 0000000..5efe311
--- /dev/null
@@ -0,0 +1,76 @@
+--- linux-2.4.20-dm-10/drivers/md/dm-table.c   Wed Mar 26 16:50:29 2003
++++ linux/drivers/md/dm-table.c        Fri Mar 28 16:50:12 2003
+@@ -640,7 +640,7 @@
+       return &t->targets[(KEYS_PER_NODE * n) + k];
+ }
+-unsigned int dm_table_get_num_targets(struct dm_table *t)
++int dm_table_get_num_targets(struct dm_table *t)
+ {
+       return t->num_targets;
+ }
+--- linux-2.4.20-dm-10/drivers/md/dm.h Wed Mar 26 16:12:53 2003
++++ linux/drivers/md/dm.h      Fri Mar 28 16:42:31 2003
+@@ -100,7 +100,7 @@
+ sector_t dm_table_get_size(struct dm_table *t);
+ struct dm_target *dm_table_get_target(struct dm_table *t, int index);
+ struct dm_target *dm_table_find_target(struct dm_table *t, sector_t sector);
+-unsigned int dm_table_get_num_targets(struct dm_table *t);
++int dm_table_get_num_targets(struct dm_table *t);
+ struct list_head *dm_table_get_devices(struct dm_table *t);
+ int dm_table_get_mode(struct dm_table *t);
+ void dm_table_add_wait_queue(struct dm_table *t, wait_queue_t *wq);
+--- linux-2.4.20-dm-10/include/linux/dm-ioctl.h        Fri Mar 28 16:01:18 2003
++++ linux/include/linux/dm-ioctl.h     Fri Mar 28 16:54:02 2003
+@@ -47,10 +47,10 @@
+                                * relative to start of this struct */
+       uint32_t target_count;  /* in/out */
+-      uint32_t open_count;    /* out */
++      int32_t open_count;     /* out */
+       uint32_t flags;         /* in/out */
+-      __kernel_dev_t dev;     /* in/out */
++      uint64_t dev;           /* in/out */
+       char name[DM_NAME_LEN]; /* device name */
+       char uuid[DM_UUID_LEN]; /* unique identifier for
+@@ -62,9 +62,9 @@
+  * dm_ioctl.
+  */
+ struct dm_target_spec {
+-      int32_t status;         /* used when reading from kernel only */
+       uint64_t sector_start;
+-      uint32_t length;
++      uint64_t length;
++      int32_t status;         /* used when reading from kernel only */
+       /*
+        * Offset in bytes (from the start of this struct) to
+@@ -85,9 +85,9 @@
+  * Used to retrieve the target dependencies.
+  */
+ struct dm_target_deps {
+-      uint32_t count;
+-
+-      __kernel_dev_t dev[0];  /* out */
++      uint32_t count;         /* Array size */
++      uint32_t padding;       /* unused */
++      uint64_t dev[0];        /* out */
+ };
+ /*
+@@ -129,10 +129,10 @@
+ #define DM_TARGET_STATUS _IOWR(DM_IOCTL, DM_TARGET_STATUS_CMD, struct dm_ioctl)
+ #define DM_TARGET_WAIT   _IOWR(DM_IOCTL, DM_TARGET_WAIT_CMD, struct dm_ioctl)
+-#define DM_VERSION_MAJOR      1
++#define DM_VERSION_MAJOR      3
+ #define DM_VERSION_MINOR      0
+-#define DM_VERSION_PATCHLEVEL 10
+-#define DM_VERSION_EXTRA      "-ioctl (2003-03-27)"
++#define DM_VERSION_PATCHLEVEL 0
++#define DM_VERSION_EXTRA      "-ioctl (2003-03-28)"
+ /* Status bits */
+ #define DM_READONLY_FLAG      0x00000001
This page took 0.029832 seconds and 5 git commands to generate.