|
|
|
@ -79,11 +79,26 @@ typedef int (*dm_ioctl_fn) (struct dm_target *ti, unsigned int cmd, |
|
|
|
|
typedef int (*dm_merge_fn) (struct dm_target *ti, struct bvec_merge_data *bvm, |
|
|
|
|
struct bio_vec *biovec, int max_size); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* These iteration functions are typically used to check (and combine) |
|
|
|
|
* properties of underlying devices. |
|
|
|
|
* E.g. Does at least one underlying device support flush? |
|
|
|
|
* Does any underlying device not support WRITE_SAME? |
|
|
|
|
* |
|
|
|
|
* The callout function is called once for each contiguous section of |
|
|
|
|
* an underlying device. State can be maintained in *data. |
|
|
|
|
* Return non-zero to stop iterating through any further devices. |
|
|
|
|
*/ |
|
|
|
|
typedef int (*iterate_devices_callout_fn) (struct dm_target *ti, |
|
|
|
|
struct dm_dev *dev, |
|
|
|
|
sector_t start, sector_t len, |
|
|
|
|
void *data); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* This function must iterate through each section of device used by the |
|
|
|
|
* target until it encounters a non-zero return code, which it then returns. |
|
|
|
|
* Returns zero if no callout returned non-zero. |
|
|
|
|
*/ |
|
|
|
|
typedef int (*dm_iterate_devices_fn) (struct dm_target *ti, |
|
|
|
|
iterate_devices_callout_fn fn, |
|
|
|
|
void *data); |
|
|
|
|