Date: Fri, 11 Feb 2011 07:26:40 +0000 (UTC) From: Alexander Motin <mav@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r218546 - projects/graid/head/sys/geom/raid Message-ID: <201102110726.p1B7QeXi049860@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201102110726.p1B7QeXi049860>