aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/device-mapper.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h
index 1e483fa7afb4..3cd32478f2fd 100644
--- a/include/linux/device-mapper.h
+++ b/include/linux/device-mapper.h
@@ -79,11 +79,26 @@ typedef int (*dm_ioctl_fn) (struct dm_target *ti, unsigned int cmd,
79typedef int (*dm_merge_fn) (struct dm_target *ti, struct bvec_merge_data *bvm, 79typedef int (*dm_merge_fn) (struct dm_target *ti, struct bvec_merge_data *bvm,
80 struct bio_vec *biovec, int max_size); 80 struct bio_vec *biovec, int max_size);
81 81
82/*
83 * These iteration functions are typically used to check (and combine)
84 * properties of underlying devices.
85 * E.g. Does at least one underlying device support flush?
86 * Does any underlying device not support WRITE_SAME?
87 *
88 * The callout function is called once for each contiguous section of
89 * an underlying device. State can be maintained in *data.
90 * Return non-zero to stop iterating through any further devices.
91 */
82typedef int (*iterate_devices_callout_fn) (struct dm_target *ti, 92typedef int (*iterate_devices_callout_fn) (struct dm_target *ti,
83 struct dm_dev *dev, 93 struct dm_dev *dev,
84 sector_t start, sector_t len, 94 sector_t start, sector_t len,
85 void *data); 95 void *data);
86 96
97/*
98 * This function must iterate through each section of device used by the
99 * target until it encounters a non-zero return code, which it then returns.
100 * Returns zero if no callout returned non-zero.
101 */
87typedef int (*dm_iterate_devices_fn) (struct dm_target *ti, 102typedef int (*dm_iterate_devices_fn) (struct dm_target *ti,
88 iterate_devices_callout_fn fn, 103 iterate_devices_callout_fn fn,
89 void *data); 104 void *data);