[dm-devel] Re: [PATCH] Rename device_area_is_valid and reverse logic accordingly
Mikulas Patocka
mpatocka at redhat.com
Thu Jul 30 19:08:13 UTC 2009
> ---
>
> From: Mikulas Patocka <mpatocka at redhat.com>
>
> Rename device_area_is_valid and reverse logic accordingly
>
> ->iterate_devices method calls the callback for every underlying device
> in the target. If the callback returns non-zero iterate_devices exits
> immediately and the caller should understand that an error occurred.
>
> The logic to check for valid device areas was reversed relative to
> proper use with iterate_devices. device_area_is_valid returned 0 on
> error and 1 on success. Thus error (from iterate_devices) was returned
> only if all the devices were invalid.
>
> This patch renames device_area_is_valid to device_area_is_invalid and
> reverses the logic so that 0 means valid and 1 means invalid (to match
> iterate_devices).
>
> Signed-off-by: Mikulas Patocka <mpatocka at redhat.com>
> Signed-off-by: Mike Snitzer <snitzer at redhat.com>
>
> ---
> drivers/md/dm-table.c | 22 +++++++++++-----------
> 1 files changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
> index d952b34..aa60526 100644
> --- a/drivers/md/dm-table.c
> +++ b/drivers/md/dm-table.c
> @@ -343,10 +343,10 @@ static void close_dev(struct dm_dev_internal *d, struct mapped_device *md)
> }
>
> /*
> - * If possible, this checks an area of a destination device is valid.
> + * If possible, this checks an area of a destination device is invalid.
> */
> -static int device_area_is_valid(struct dm_target *ti, struct dm_dev *dev,
> - sector_t start, sector_t len, void *data)
> +static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev,
> + sector_t start, sector_t len, void *data)
> {
> struct queue_limits *limits = data;
> struct block_device *bdev = dev->bdev;
> @@ -357,16 +357,16 @@ static int device_area_is_valid(struct dm_target *ti, struct dm_dev *dev,
> char b[BDEVNAME_SIZE];
>
> if (!dev_size)
> - return 1;
> + return 0;
>
> if ((start >= dev_size) || (start + len > dev_size)) {
> DMWARN("%s: %s too small for target",
> dm_device_name(ti->table->md), bdevname(bdev, b));
> - return 0;
> + return 1;
> }
>
> if (logical_block_size_sectors <= 1)
> - return 1;
> + return 0;
>
> if (start & (logical_block_size_sectors - 1)) {
> DMWARN("%s: start=%llu not aligned to h/w "
> @@ -374,7 +374,7 @@ static int device_area_is_valid(struct dm_target *ti, struct dm_dev *dev,
> dm_device_name(ti->table->md),
> (unsigned long long)start,
> limits->logical_block_size, bdevname(bdev, b));
> - return 0;
> + return 1;
> }
>
> if (len & (logical_block_size_sectors - 1)) {
> @@ -383,10 +383,10 @@ static int device_area_is_valid(struct dm_target *ti, struct dm_dev *dev,
> dm_device_name(ti->table->md),
> (unsigned long long)len,
> limits->logical_block_size, bdevname(bdev, b));
> - return 0;
> + return 1;
> }
>
> - return 1;
> + return 0;
> }
>
> /*
> @@ -1000,8 +1000,8 @@ int dm_calculate_queue_limits(struct dm_table *table,
> * Check each device area is consistent with the target's
> * overall queue limits.
> */
> - if (!ti->type->iterate_devices(ti, device_area_is_valid,
> - &ti_limits))
> + if (ti->type->iterate_devices(ti, device_area_is_invalid,
> + &ti_limits))
> return -EINVAL;
>
> combine_limits:
>
Acked-by: Mikulas Patocka <mpatocka at redhat.com>
More information about the dm-devel
mailing list