diff options
| author | Mike Snitzer <snitzer@redhat.com> | 2009-07-23 15:30:42 -0400 |
|---|---|---|
| committer | Alasdair G Kergon <agk@redhat.com> | 2009-07-23 15:30:42 -0400 |
| commit | 5dea271b6d87bd1d79a59c1d5baac2596a841c37 (patch) | |
| tree | c85bcee4f90729927285fc282c6df94bf18d023d /include/linux | |
| parent | a732c207d19e899845ae47139708af898daaf9fd (diff) | |
dm table: pass correct dev area size to device_area_is_valid
Incorrect device area lengths are being passed to device_area_is_valid().
The regression appeared in 2.6.31-rc1 through commit
754c5fc7ebb417b23601a6222a6005cc2e7f2913.
With the dm-stripe target, the size of the target (ti->len) was used
instead of the stripe_width (ti->len/#stripes). An example of a
consequent incorrect error message is:
device-mapper: table: 254:0: sdb too small for target
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/device-mapper.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index 0d6310657f32..655e7721580a 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h | |||
| @@ -84,7 +84,7 @@ typedef int (*dm_merge_fn) (struct dm_target *ti, struct bvec_merge_data *bvm, | |||
| 84 | 84 | ||
| 85 | typedef int (*iterate_devices_callout_fn) (struct dm_target *ti, | 85 | typedef int (*iterate_devices_callout_fn) (struct dm_target *ti, |
| 86 | struct dm_dev *dev, | 86 | struct dm_dev *dev, |
| 87 | sector_t physical_start, | 87 | sector_t start, sector_t len, |
| 88 | void *data); | 88 | void *data); |
| 89 | 89 | ||
| 90 | typedef int (*dm_iterate_devices_fn) (struct dm_target *ti, | 90 | typedef int (*dm_iterate_devices_fn) (struct dm_target *ti, |
| @@ -104,7 +104,7 @@ void dm_error(const char *message); | |||
| 104 | * Combine device limits. | 104 | * Combine device limits. |
| 105 | */ | 105 | */ |
| 106 | int dm_set_device_limits(struct dm_target *ti, struct dm_dev *dev, | 106 | int dm_set_device_limits(struct dm_target *ti, struct dm_dev *dev, |
| 107 | sector_t start, void *data); | 107 | sector_t start, sector_t len, void *data); |
| 108 | 108 | ||
| 109 | struct dm_dev { | 109 | struct dm_dev { |
| 110 | struct block_device *bdev; | 110 | struct block_device *bdev; |
