diff options
author | Neil Brown <neilb@suse.de> | 2006-12-14 17:31:13 +1100 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2006-12-14 17:31:13 +1100 |
commit | 583315d9c522c310c89d5640ae884ef7984b9c30 (patch) | |
tree | e3a1f9d2e617fc90460b7786fc01e8c255cbe211 /util.c | |
parent | 757234466509aae6221c2cb96e8366f41ba7e532 (diff) | |
download | mdadm-583315d9c522c310c89d5640ae884ef7984b9c30.tar.gz mdadm-583315d9c522c310c89d5640ae884ef7984b9c30.tar.xz mdadm-583315d9c522c310c89d5640ae884ef7984b9c30.zip |
Give useful message if raid4/5/6 cannot be started because it is not clean and is also degraded.
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -170,7 +170,7 @@ void remove_partitions(int fd) #endif } -int enough(int level, int raid_disks, int layout, +int enough(int level, int raid_disks, int layout, int clean, char *avail, int avail_disks) { int copies, first; @@ -205,9 +205,15 @@ int enough(int level, int raid_disks, int layout, return avail_disks >= 1; case 4: case 5: - return avail_disks >= raid_disks-1; + if (clean) + return avail_disks >= raid_disks-1; + else + return avail_disks >= raid_disks; case 6: - return avail_disks >= raid_disks-2; + if (clean) + return avail_disks >= raid_disks-2; + else + return avail_disks >= raid_disks; default: return 0; } |