aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAlasdair G Kergon <agk@redhat.com>2013-05-10 09:37:17 -0400
committerAlasdair G Kergon <agk@redhat.com>2013-05-10 09:37:17 -0400
commit058ce5ca8155a4c8eeac9b9e8a70e6664996337b (patch)
treea03efe966b0299fe36ec297ba370c241deb182ce /include
parent88a488f6243c98b38ac5191d4255e09d3b1c6455 (diff)
dm: document iterate_devices
Document iterate_devices in device-mapper.h. Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Diffstat (limited to 'include')
-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);