From 7661d79cea49e5af403af6efa87e3ea7ae9e11b7 Mon Sep 17 00:00:00 2001 From: Alasdair G Kergon Date: Fri, 10 May 2013 14:37:17 +0100 Subject: [PATCH] --- yaml --- r: 375255 b: refs/heads/master c: 058ce5ca8155a4c8eeac9b9e8a70e6664996337b h: refs/heads/master i: 375253: 444a042475c81302e47895217edb4a84b6bea7ee 375251: 6841ddfcf651c894392aa9c25fcaeadc8e6ad088 375247: eec122fe47272540dbf905258e391480cacc1ed0 v: v3 --- [refs] | 2 +- trunk/include/linux/device-mapper.h | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 40bc6578a3e6..d4e2ae805b2b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 88a488f6243c98b38ac5191d4255e09d3b1c6455 +refs/heads/master: 058ce5ca8155a4c8eeac9b9e8a70e6664996337b diff --git a/trunk/include/linux/device-mapper.h b/trunk/include/linux/device-mapper.h index 1e483fa7afb4..3cd32478f2fd 100644 --- a/trunk/include/linux/device-mapper.h +++ b/trunk/include/linux/device-mapper.h @@ -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);