Re: [PATCH 2/2] dm era: fix error code propagation in era_ctr()
From: Ming Hung Tsai
Date: Wed Jun 24 2026 - 10:08:01 EST
On Wed, Jun 17, 2026 at 2:12 PM <ghuicao@xxxxxxx> wrote:
>
> From: Cao Guanghui <caoguanghui@xxxxxxxxxx>
>
> era_ctr() replaces the actual error codes returned by dm_get_device()
> and dm_set_target_max_io_len() with hardcoded -EINVAL, discarding
> the real reason for the failure (e.g. -ENODEV, -ENOMEM). This makes
> it harder for users to diagnose problems and is inconsistent with
> other dm targets (dm-thin, dm-verity, dm-flakey, dm-ebs) which
> propagate the original error.
>
> Fix all three sites to return 'r' instead of -EINVAL.
>
> Signed-off-by: Cao Guanghui <caoguanghui@xxxxxxxxxx>
Thanks!
Reviewed-by: Ming-Hung Tsai <mtsai@xxxxxxxxxx>
> ---
> drivers/md/dm-era-target.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/md/dm-era-target.c b/drivers/md/dm-era-target.c
> index 08ce96e8cf4f..4eb1c4f90e1b 100644
> --- a/drivers/md/dm-era-target.c
> +++ b/drivers/md/dm-era-target.c
> @@ -1488,7 +1488,7 @@ static int era_ctr(struct dm_target *ti, unsigned int argc, char **argv)
> if (r) {
> ti->error = "Error opening metadata device";
> era_destroy(era);
> - return -EINVAL;
> + return r;
> }
>
> r = dm_get_device(ti, argv[1], BLK_OPEN_READ | BLK_OPEN_WRITE,
> @@ -1496,7 +1496,7 @@ static int era_ctr(struct dm_target *ti, unsigned int argc, char **argv)
> if (r) {
> ti->error = "Error opening data device";
> era_destroy(era);
> - return -EINVAL;
> + return r;
> }
>
> r = sscanf(argv[2], "%u%c", &era->sectors_per_block, &dummy);
> @@ -1510,7 +1510,7 @@ static int era_ctr(struct dm_target *ti, unsigned int argc, char **argv)
> if (r) {
> ti->error = "could not set max io len";
> era_destroy(era);
> - return -EINVAL;
> + return r;
> }
>
> if (!valid_block_size(era->sectors_per_block)) {
> --
> 2.25.1
>
>