Re: [PATCH v5] dm: add unstriped target

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Dec 19 2017 at  1:35P -0500,
Scott Bauer <scott.bauer@xxxxxxxxx> wrote:

> On Mon, Dec 18, 2017 at 06:22:33PM -0500, Mike Snitzer wrote:
> 
> > +	if (sscanf(argv[1], "%llu%c", &start, &dummy) != 1) {
>                         ^ should be argv[4]
> > +		ti->error = "Invalid striped device offset";
> > +		goto err;
> > +	}
> > +	uc->physical_start = start;
> 
> Hi Mike,
> Sorry for the bombardment of emails. I think I've fixed the last
> problem. Above is the last issue.
> 
> Below is a patch you can apply that will fix up the sector switch, I
> had mentioned in the previous mail, as well as the wrong argv usage
> from above.
> 
> I still have not solved the NULL pointer issue, i'll continue to
> investigate that. Unless you have an idea of why that is occuring.

See below for incremental patch that should fix the NULL pointer, please
test and I'll fold it in, along with your incremental.

Thanks!

> You can trigger it without having to create/remove/create. Just a
> creation with a bad (odd length) target length will do it.
> 
> If you don't want this patch but want me to do a v6 I can do that as
> well.

I'll take it, no worries on sending out v6.

diff --git a/drivers/md/dm-unstripe.c b/drivers/md/dm-unstripe.c
index b6f641dcbdee..27a8400a96f2 100644
--- a/drivers/md/dm-unstripe.c
+++ b/drivers/md/dm-unstripe.c
@@ -47,7 +47,6 @@ static int unstripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
 	sector_t width, tmp_len;
 	unsigned long long start;
 	char dummy;
-	int r = -EINVAL;
 
 	if (argc != 5) {
 		ti->error = "Invalid number of arguments";
@@ -86,8 +85,7 @@ static int unstripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
 		goto err;
 	}
 
-	r = dm_get_device(ti, argv[3], dm_table_get_mode(ti->table), &uc->dev);
-	if (r) {
+	if (dm_get_device(ti, argv[3], dm_table_get_mode(ti->table), &uc->dev))
 		ti->error = "Couldn't get striped device";
 		goto err;
 	}
@@ -124,7 +122,7 @@ static int unstripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
 	return 0;
 err:
 	cleanup_unstripe(uc, ti);
-	return r;
+	return -EINVAL;
 }
 
 static void unstripe_dtr(struct dm_target *ti)

--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel



[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux