change dd->dev to a kdev_t --- diff/drivers/md/dm-table.c 2002-11-05 16:39:55.000000000 +0000 +++ source/drivers/md/dm-table.c 2002-11-07 16:21:07.000000000 +0000 @@ -253,7 +253,7 @@ /* * Convert a device path to a dev_t. */ -static int lookup_device(const char *path, dev_t *dev) +static int lookup_device(const char *path, kdev_t *dev) { int r; struct nameidata nd; @@ -276,7 +276,7 @@ goto out; } - *dev = kdev_t_to_nr(inode->i_rdev); + *dev = inode->i_rdev; out: path_release(&nd); @@ -286,13 +286,13 @@ /* * See if we've already got a device in the list. */ -static struct dm_dev *find_device(struct list_head *l, dev_t dev) +static struct dm_dev *find_device(struct list_head *l, kdev_t dev) { struct list_head *tmp; list_for_each(tmp, l) { struct dm_dev *dd = list_entry(tmp, struct dm_dev, list); - if (dd->dev == dev) + if (kdev_same(dd->dev, dev)) return dd; } @@ -307,7 +307,7 @@ if (dd->bdev) BUG(); - dd->bdev = bdget(dd->dev); + dd->bdev = bdget(kdev_t_to_nr(dd->dev)); if (!dd->bdev) return -ENOMEM; @@ -330,13 +330,12 @@ * If possible (ie. blk_size[major] is set), this checks an area * of a destination device is valid. */ -static int check_device_area(struct dm_dev *dd, sector_t start, sector_t len) +static int check_device_area(kdev_t dev, sector_t start, sector_t len) { int *sizes; sector_t dev_size; - dev_t dev = dd->dev; - if (!(sizes = blk_size[MAJOR(dev)]) || !(dev_size = sizes[MINOR(dev)])) + if (!(sizes = blk_size[major(dev)]) || !(dev_size = sizes[minor(dev)])) /* we don't know the device details, * so give the benefit of the doubt */ return 1; @@ -344,7 +343,7 @@ /* convert to 512-byte sectors */ dev_size <<= 1; - return ((start < dev_size) && (len <= (dev_size - start))); + return ((start < dev_size) && (len <= (dev_size - start))); } /* @@ -378,7 +377,7 @@ sector_t len, int mode, struct dm_dev **result) { int r; - dev_t dev; + kdev_t dev; struct dm_dev *dd; int major, minor; struct dm_table *t = ti->table; @@ -388,7 +387,7 @@ if (sscanf(path, "%x:%x", &major, &minor) == 2) { /* Extract the major/minor numbers */ - dev = MKDEV(major, minor); + dev = mk_kdev(major, minor); } else { /* convert the path to a device */ if ((r = lookup_device(path, &dev))) @@ -420,7 +419,7 @@ } atomic_inc(&dd->count); - if (!check_device_area(dd, start, len)) { + if (!check_device_area(dd->dev, start, len)) { DMWARN("device %s too small for target", path); dm_put_device(ti, dd); return -EINVAL; --- diff/drivers/md/dm.h 2002-11-05 16:39:42.000000000 +0000 +++ source/drivers/md/dm.h 2002-11-07 16:01:56.000000000 +0000 @@ -39,7 +39,7 @@ atomic_t count; int mode; - dev_t dev; + kdev_t dev; struct block_device *bdev; };