![]() | ||||||||||
Messages in this thread Patch in this message |
On Thursday 12 December 2002 03:12, Joe Thornber wrote: > On Wed, Dec 11, 2002 at 04:15:42PM -0800, Wil Reichert wrote: > > Ok, 2.5.51 plus dm patches result in the following: > > > > Initializing LVM: device-mapper: device > > /dev/ide/host2/bus1/target0/lun0/disc too small for target > > device-mapper: internal error adding target to table > > device-mapper: destroying table > > device-mapper ioctl cmd 2 failed: Invalid argument > > Couldn't load device 'cheese_vg-blah'. > > 0 logical volume(s) in volume group "cheese_vg" now active > > lvm2. > > > > Was fine (minus of course the entire bio thing) in 50, did something > > break in 51 or is it just my box? > > I've had a couple of reports of this problem. The offending patch is: > > http://people.sistina.com/~thornber/patches/2.5-stable/2.5.51/2.5.51-dm-1/0 >0005.patch > > back it out if necc. > > All it does is: > > --- diff/drivers/md/dm-table.c 2002-12-11 11:59:51.000000000 +0000 > +++ source/drivers/md/dm-table.c 2002-12-11 12:00:00.000000000 +0000 > @@ -388,7 +388,7 @@ > static int check_device_area(struct dm_dev *dd, sector_t start, sector_t > len) { > sector_t dev_size; > - dev_size = dd->bdev->bd_inode->i_size; > + dev_size = dd->bdev->bd_inode->i_size >> SECTOR_SHIFT; > return ((start < dev_size) && (len <= (dev_size - start))); > } Actually, this 00005.patch *is* necessary. dd->bdev->bd_inode->i_size *is* in bytes, and does need to be shifted to do the above comparison. I believe we have tracked the problem down to the call to dm_get_device() in dm-linear.c. It is passing in an incorrect value, which winds up being the "start" parameter to the check_device_area() function. I've included a patch at the end of this email which I believe should fix the problem. I have also checked dm-stripe.c, and it appears to make the call to dm_get_device() correctly, so no worries there. -- Kevin Corry corryk@us.ibm.com http://evms.sourceforge.net/ --- linux-2.5.51a/drivers/md/dm-linear.c 2002/11/20 20:09:22 1.1 +++ linux-2.5.51b/drivers/md/dm-linear.c 2002/12/12 21:38:32 @@ -43,7 +43,7 @@ goto bad; } - if (dm_get_device(ti, argv[0], ti->begin, ti->len, + if (dm_get_device(ti, argv[0], lc->start, ti->len, dm_table_get_mode(ti->table), &lc->dev)) { ti->error = "dm-linear: Device lookup failed"; goto bad; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | |||||||||
| Last update: 2005-03-22 12:31 [from the cache] ©2003-2008 | ||||||||||