svn commit: r218546 - projects/graid/head/sys/geom/raid
Alexander Motin
mav at FreeBSD.org
Fri Feb 11 07:26:40 UTC 2011
Author: mav
Date: Fri Feb 11 07:26:40 2011
New Revision: 218546
URL: http://svn.freebsd.org/changeset/base/218546
Log:
Add some safety belts against g_raid_fail_disk() misuse.
Modified:
projects/graid/head/sys/geom/raid/g_raid.c
Modified: projects/graid/head/sys/geom/raid/g_raid.c
==============================================================================
--- projects/graid/head/sys/geom/raid/g_raid.c Fri Feb 11 07:26:17 2011 (r218545)
+++ projects/graid/head/sys/geom/raid/g_raid.c Fri Feb 11 07:26:40 2011 (r218546)
@@ -1961,6 +1961,17 @@ void g_raid_fail_disk(struct g_raid_soft
struct g_raid_subdisk *sd, struct g_raid_disk *disk)
{
+ if (disk == NULL)
+ disk = sd->sd_disk;
+ if (disk == NULL) {
+ G_RAID_DEBUG1(0, sc, "Warning! Fail request to an absent disk!");
+ return;
+ }
+ if (disk->d_state != G_RAID_DISK_S_ACTIVE) {
+ G_RAID_DEBUG1(0, sc, "Warning! Fail request to a disk in a "
+ "wrong state (%s)!", g_raid_disk_state2str(disk->d_state));
+ return;
+ }
if (sc->sc_md)
G_RAID_MD_FAIL_DISK(sc->sc_md, sd, disk);
}
More information about the svn-src-projects
mailing list