Commit 058ce5ca authored by Alasdair G Kergon's avatar Alasdair G Kergon

dm: document iterate_devices

Document iterate_devices in device-mapper.h.
Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
parent 88a488f6
...@@ -79,11 +79,26 @@ typedef int (*dm_ioctl_fn) (struct dm_target *ti, unsigned int cmd, ...@@ -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, typedef int (*dm_merge_fn) (struct dm_target *ti, struct bvec_merge_data *bvm,
struct bio_vec *biovec, int max_size); 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, typedef int (*iterate_devices_callout_fn) (struct dm_target *ti,
struct dm_dev *dev, struct dm_dev *dev,
sector_t start, sector_t len, sector_t start, sector_t len,
void *data); 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, typedef int (*dm_iterate_devices_fn) (struct dm_target *ti,
iterate_devices_callout_fn fn, iterate_devices_callout_fn fn,
void *data); void *data);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment