diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-08-03 02:49:21 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-08-03 02:49:21 -0400 |
| commit | f3406816bb2486fc44558bec77179cd9bcbd4450 (patch) | |
| tree | 718db1ef45e55314b5e7290f77e70e6328d855a4 /include/linux | |
| parent | 4400478ba3d939b680810aa004f1e954b4f8ba16 (diff) | |
| parent | ed8b752bccf2560e305e25125721d2f0ac759e88 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm
* git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm: (34 commits)
dm table: set flush capability based on underlying devices
dm crypt: optionally support discard requests
dm raid: add md raid1 support
dm raid: support metadata devices
dm raid: add write_mostly parameter
dm raid: add region_size parameter
dm raid: improve table parameters documentation
dm ioctl: forbid multiple device specifiers
dm ioctl: introduce __get_dev_cell
dm ioctl: fill in device parameters in more ioctls
dm flakey: add corrupt_bio_byte feature
dm flakey: add drop_writes
dm flakey: support feature args
dm flakey: use dm_target_offset and support discards
dm table: share target argument parsing functions
dm snapshot: skip reading origin when overwriting complete chunk
dm: ignore merge_bvec for snapshots when safe
dm table: clean dm_get_device and move exports
dm raid: tidy includes
dm ioctl: prevent empty message
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/device-mapper.h | 43 | ||||
| -rw-r--r-- | include/linux/dm-ioctl.h | 4 | ||||
| -rw-r--r-- | include/linux/dm-kcopyd.h | 15 |
3 files changed, 60 insertions, 2 deletions
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index 4427e0454051..3fa1f3d90ce0 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h | |||
| @@ -208,6 +208,49 @@ struct dm_target_callbacks { | |||
| 208 | int dm_register_target(struct target_type *t); | 208 | int dm_register_target(struct target_type *t); |
| 209 | void dm_unregister_target(struct target_type *t); | 209 | void dm_unregister_target(struct target_type *t); |
| 210 | 210 | ||
| 211 | /* | ||
| 212 | * Target argument parsing. | ||
| 213 | */ | ||
| 214 | struct dm_arg_set { | ||
| 215 | unsigned argc; | ||
| 216 | char **argv; | ||
| 217 | }; | ||
| 218 | |||
| 219 | /* | ||
| 220 | * The minimum and maximum value of a numeric argument, together with | ||
| 221 | * the error message to use if the number is found to be outside that range. | ||
| 222 | */ | ||
| 223 | struct dm_arg { | ||
| 224 | unsigned min; | ||
| 225 | unsigned max; | ||
| 226 | char *error; | ||
| 227 | }; | ||
| 228 | |||
| 229 | /* | ||
| 230 | * Validate the next argument, either returning it as *value or, if invalid, | ||
| 231 | * returning -EINVAL and setting *error. | ||
| 232 | */ | ||
| 233 | int dm_read_arg(struct dm_arg *arg, struct dm_arg_set *arg_set, | ||
| 234 | unsigned *value, char **error); | ||
| 235 | |||
| 236 | /* | ||
| 237 | * Process the next argument as the start of a group containing between | ||
| 238 | * arg->min and arg->max further arguments. Either return the size as | ||
| 239 | * *num_args or, if invalid, return -EINVAL and set *error. | ||
| 240 | */ | ||
| 241 | int dm_read_arg_group(struct dm_arg *arg, struct dm_arg_set *arg_set, | ||
| 242 | unsigned *num_args, char **error); | ||
| 243 | |||
| 244 | /* | ||
| 245 | * Return the current argument and shift to the next. | ||
| 246 | */ | ||
| 247 | const char *dm_shift_arg(struct dm_arg_set *as); | ||
| 248 | |||
| 249 | /* | ||
| 250 | * Move through num_args arguments. | ||
| 251 | */ | ||
| 252 | void dm_consume_args(struct dm_arg_set *as, unsigned num_args); | ||
| 253 | |||
| 211 | /*----------------------------------------------------------------- | 254 | /*----------------------------------------------------------------- |
| 212 | * Functions for creating and manipulating mapped devices. | 255 | * Functions for creating and manipulating mapped devices. |
| 213 | * Drop the reference with dm_put when you finish with the object. | 256 | * Drop the reference with dm_put when you finish with the object. |
diff --git a/include/linux/dm-ioctl.h b/include/linux/dm-ioctl.h index 3708455ee6c3..0cb8eff76bd6 100644 --- a/include/linux/dm-ioctl.h +++ b/include/linux/dm-ioctl.h | |||
| @@ -267,9 +267,9 @@ enum { | |||
| 267 | #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) | 267 | #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) |
| 268 | 268 | ||
| 269 | #define DM_VERSION_MAJOR 4 | 269 | #define DM_VERSION_MAJOR 4 |
| 270 | #define DM_VERSION_MINOR 20 | 270 | #define DM_VERSION_MINOR 21 |
| 271 | #define DM_VERSION_PATCHLEVEL 0 | 271 | #define DM_VERSION_PATCHLEVEL 0 |
| 272 | #define DM_VERSION_EXTRA "-ioctl (2011-02-02)" | 272 | #define DM_VERSION_EXTRA "-ioctl (2011-07-06)" |
| 273 | 273 | ||
| 274 | /* Status bits */ | 274 | /* Status bits */ |
| 275 | #define DM_READONLY_FLAG (1 << 0) /* In/Out */ | 275 | #define DM_READONLY_FLAG (1 << 0) /* In/Out */ |
diff --git a/include/linux/dm-kcopyd.h b/include/linux/dm-kcopyd.h index 298d587e349b..5e54458e920f 100644 --- a/include/linux/dm-kcopyd.h +++ b/include/linux/dm-kcopyd.h | |||
| @@ -42,5 +42,20 @@ int dm_kcopyd_copy(struct dm_kcopyd_client *kc, struct dm_io_region *from, | |||
| 42 | unsigned num_dests, struct dm_io_region *dests, | 42 | unsigned num_dests, struct dm_io_region *dests, |
| 43 | unsigned flags, dm_kcopyd_notify_fn fn, void *context); | 43 | unsigned flags, dm_kcopyd_notify_fn fn, void *context); |
| 44 | 44 | ||
| 45 | /* | ||
| 46 | * Prepare a callback and submit it via the kcopyd thread. | ||
| 47 | * | ||
| 48 | * dm_kcopyd_prepare_callback allocates a callback structure and returns it. | ||
| 49 | * It must not be called from interrupt context. | ||
| 50 | * The returned value should be passed into dm_kcopyd_do_callback. | ||
| 51 | * | ||
| 52 | * dm_kcopyd_do_callback submits the callback. | ||
| 53 | * It may be called from interrupt context. | ||
| 54 | * The callback is issued from the kcopyd thread. | ||
| 55 | */ | ||
| 56 | void *dm_kcopyd_prepare_callback(struct dm_kcopyd_client *kc, | ||
| 57 | dm_kcopyd_notify_fn fn, void *context); | ||
| 58 | void dm_kcopyd_do_callback(void *job, int read_err, unsigned long write_err); | ||
| 59 | |||
| 45 | #endif /* __KERNEL__ */ | 60 | #endif /* __KERNEL__ */ |
| 46 | #endif /* _LINUX_DM_KCOPYD_H */ | 61 | #endif /* _LINUX_DM_KCOPYD_H */ |
