The dm_get_device in the linear constructor was wrong. --- diff/drivers/md/dm-linear.c 2002-11-05 12:12:17.000000000 +0000 +++ source/drivers/md/dm-linear.c 2002-11-08 11:40:59.000000000 +0000 @@ -42,7 +42,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;