diff options
| author | Darrick J. Wong <djwong@us.ibm.com> | 2006-03-27 04:17:54 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-27 11:44:59 -0500 |
| commit | 3ac51e741a46af7a20f55e79d3e3aeaa93c6c544 (patch) | |
| tree | cab595a4d9691d7602616337b7862a1a3d692b97 /include/linux | |
| parent | 1134e5ae79bab61c05657ca35a6297cf87202e35 (diff) | |
[PATCH] dm store geometry
Allow drive geometry to be stored with a new DM_DEV_SET_GEOMETRY ioctl.
Device-mapper will now respond to HDIO_GETGEO. If the geometry information is
not available, zero will be returned for all of the parameters.
Signed-off-by: Darrick J. Wong <djwong@us.ibm.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/compat_ioctl.h | 2 | ||||
| -rw-r--r-- | include/linux/dm-ioctl.h | 17 |
2 files changed, 17 insertions, 2 deletions
diff --git a/include/linux/compat_ioctl.h b/include/linux/compat_ioctl.h index efb518f16bb3..89ab677cb993 100644 --- a/include/linux/compat_ioctl.h +++ b/include/linux/compat_ioctl.h | |||
| @@ -140,6 +140,7 @@ COMPATIBLE_IOCTL(DM_TABLE_DEPS_32) | |||
| 140 | COMPATIBLE_IOCTL(DM_TABLE_STATUS_32) | 140 | COMPATIBLE_IOCTL(DM_TABLE_STATUS_32) |
| 141 | COMPATIBLE_IOCTL(DM_LIST_VERSIONS_32) | 141 | COMPATIBLE_IOCTL(DM_LIST_VERSIONS_32) |
| 142 | COMPATIBLE_IOCTL(DM_TARGET_MSG_32) | 142 | COMPATIBLE_IOCTL(DM_TARGET_MSG_32) |
| 143 | COMPATIBLE_IOCTL(DM_DEV_SET_GEOMETRY_32) | ||
| 143 | COMPATIBLE_IOCTL(DM_VERSION) | 144 | COMPATIBLE_IOCTL(DM_VERSION) |
| 144 | COMPATIBLE_IOCTL(DM_REMOVE_ALL) | 145 | COMPATIBLE_IOCTL(DM_REMOVE_ALL) |
| 145 | COMPATIBLE_IOCTL(DM_LIST_DEVICES) | 146 | COMPATIBLE_IOCTL(DM_LIST_DEVICES) |
| @@ -155,6 +156,7 @@ COMPATIBLE_IOCTL(DM_TABLE_DEPS) | |||
| 155 | COMPATIBLE_IOCTL(DM_TABLE_STATUS) | 156 | COMPATIBLE_IOCTL(DM_TABLE_STATUS) |
| 156 | COMPATIBLE_IOCTL(DM_LIST_VERSIONS) | 157 | COMPATIBLE_IOCTL(DM_LIST_VERSIONS) |
| 157 | COMPATIBLE_IOCTL(DM_TARGET_MSG) | 158 | COMPATIBLE_IOCTL(DM_TARGET_MSG) |
| 159 | COMPATIBLE_IOCTL(DM_DEV_SET_GEOMETRY) | ||
| 158 | /* Big K */ | 160 | /* Big K */ |
| 159 | COMPATIBLE_IOCTL(PIO_FONT) | 161 | COMPATIBLE_IOCTL(PIO_FONT) |
| 160 | COMPATIBLE_IOCTL(GIO_FONT) | 162 | COMPATIBLE_IOCTL(GIO_FONT) |
diff --git a/include/linux/dm-ioctl.h b/include/linux/dm-ioctl.h index fa75ba0d635e..c67c6786612a 100644 --- a/include/linux/dm-ioctl.h +++ b/include/linux/dm-ioctl.h | |||
| @@ -80,6 +80,16 @@ | |||
| 80 | * | 80 | * |
| 81 | * DM_TARGET_MSG: | 81 | * DM_TARGET_MSG: |
| 82 | * Pass a message string to the target at a specific offset of a device. | 82 | * Pass a message string to the target at a specific offset of a device. |
| 83 | * | ||
| 84 | * DM_DEV_SET_GEOMETRY: | ||
| 85 | * Set the geometry of a device by passing in a string in this format: | ||
| 86 | * | ||
| 87 | * "cylinders heads sectors_per_track start_sector" | ||
| 88 | * | ||
| 89 | * Beware that CHS geometry is nearly obsolete and only provided | ||
| 90 | * for compatibility with dm devices that can be booted by a PC | ||
| 91 | * BIOS. See struct hd_geometry for range limits. Also note that | ||
| 92 | * the geometry is erased if the device size changes. | ||
| 83 | */ | 93 | */ |
| 84 | 94 | ||
| 85 | /* | 95 | /* |
| @@ -218,6 +228,7 @@ enum { | |||
| 218 | /* Added later */ | 228 | /* Added later */ |
| 219 | DM_LIST_VERSIONS_CMD, | 229 | DM_LIST_VERSIONS_CMD, |
| 220 | DM_TARGET_MSG_CMD, | 230 | DM_TARGET_MSG_CMD, |
| 231 | DM_DEV_SET_GEOMETRY_CMD | ||
| 221 | }; | 232 | }; |
| 222 | 233 | ||
| 223 | /* | 234 | /* |
| @@ -247,6 +258,7 @@ typedef char ioctl_struct[308]; | |||
| 247 | #define DM_TABLE_STATUS_32 _IOWR(DM_IOCTL, DM_TABLE_STATUS_CMD, ioctl_struct) | 258 | #define DM_TABLE_STATUS_32 _IOWR(DM_IOCTL, DM_TABLE_STATUS_CMD, ioctl_struct) |
| 248 | #define DM_LIST_VERSIONS_32 _IOWR(DM_IOCTL, DM_LIST_VERSIONS_CMD, ioctl_struct) | 259 | #define DM_LIST_VERSIONS_32 _IOWR(DM_IOCTL, DM_LIST_VERSIONS_CMD, ioctl_struct) |
| 249 | #define DM_TARGET_MSG_32 _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, ioctl_struct) | 260 | #define DM_TARGET_MSG_32 _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, ioctl_struct) |
| 261 | #define DM_DEV_SET_GEOMETRY_32 _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, ioctl_struct) | ||
| 250 | #endif | 262 | #endif |
| 251 | 263 | ||
| 252 | #define DM_IOCTL 0xfd | 264 | #define DM_IOCTL 0xfd |
| @@ -270,11 +282,12 @@ typedef char ioctl_struct[308]; | |||
| 270 | #define DM_LIST_VERSIONS _IOWR(DM_IOCTL, DM_LIST_VERSIONS_CMD, struct dm_ioctl) | 282 | #define DM_LIST_VERSIONS _IOWR(DM_IOCTL, DM_LIST_VERSIONS_CMD, struct dm_ioctl) |
| 271 | 283 | ||
| 272 | #define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl) | 284 | #define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl) |
| 285 | #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) | ||
| 273 | 286 | ||
| 274 | #define DM_VERSION_MAJOR 4 | 287 | #define DM_VERSION_MAJOR 4 |
| 275 | #define DM_VERSION_MINOR 5 | 288 | #define DM_VERSION_MINOR 6 |
| 276 | #define DM_VERSION_PATCHLEVEL 0 | 289 | #define DM_VERSION_PATCHLEVEL 0 |
| 277 | #define DM_VERSION_EXTRA "-ioctl (2005-10-04)" | 290 | #define DM_VERSION_EXTRA "-ioctl (2006-02-17)" |
| 278 | 291 | ||
| 279 | /* Status bits */ | 292 | /* Status bits */ |
| 280 | #define DM_READONLY_FLAG (1 << 0) /* In/Out */ | 293 | #define DM_READONLY_FLAG (1 << 0) /* In/Out */ |
