From: NeilBrown <neilb@cse.unsw.edu.au>

It is possibly (and occasionally useful) to have a raid1 without persistent
superblocks.  The code in add_new_disk for adding a device to such an array
always tries to read a superblock.  

This will obviously fail.

So do the appropriate test and call md_import_device with
appropriate args.

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 drivers/md/md.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff -puN drivers/md/md.c~md-allow-hot-adding-devices-to-arrays-with-non-persistant-superblocks drivers/md/md.c
--- devel/drivers/md/md.c~md-allow-hot-adding-devices-to-arrays-with-non-persistant-superblocks	2005-08-30 18:46:12.000000000 -0700
+++ devel-akpm/drivers/md/md.c	2005-08-30 18:46:12.000000000 -0700
@@ -2226,8 +2226,11 @@ static int add_new_disk(mddev_t * mddev,
 			       mdname(mddev));
 			return -EINVAL;
 		}
-		rdev = md_import_device(dev, mddev->major_version,
-					mddev->minor_version);
+		if (mddev->persistent)
+			rdev = md_import_device(dev, mddev->major_version,
+						mddev->minor_version);
+		else
+			rdev = md_import_device(dev, -1, -1);
 		if (IS_ERR(rdev)) {
 			printk(KERN_WARNING 
 				"md: md_import_device returned %ld\n",
_