|
|
@@ -7670,7 +7670,7 @@ abort:
|
|
|
static int raid5_add_disk(struct mddev *mddev, struct md_rdev *rdev)
|
|
|
{
|
|
|
struct r5conf *conf = mddev->private;
|
|
|
- int err = -EEXIST;
|
|
|
+ int ret, err = -EEXIST;
|
|
|
int disk;
|
|
|
struct disk_info *p;
|
|
|
int first = 0;
|
|
|
@@ -7685,7 +7685,14 @@ static int raid5_add_disk(struct mddev *mddev, struct md_rdev *rdev)
|
|
|
* The array is in readonly mode if journal is missing, so no
|
|
|
* write requests running. We should be safe
|
|
|
*/
|
|
|
- log_init(conf, rdev, false);
|
|
|
+ ret = log_init(conf, rdev, false);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ ret = r5l_start(conf->log);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
if (mddev->recovery_disabled == conf->recovery_disabled)
|