Module Name: src Committed By: jld Date: Tue Mar 16 03:23:47 UTC 2010
Modified Files: src/sbin/raidctl: raidctl.c Log Message: Give a more polite message for `raidctl -m` on a non-parity RAID set. To generate a diff of this commit: cvs rdiff -u -r1.47 -r1.48 src/sbin/raidctl/raidctl.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sbin/raidctl/raidctl.c diff -u src/sbin/raidctl/raidctl.c:1.47 src/sbin/raidctl/raidctl.c:1.48 --- src/sbin/raidctl/raidctl.c:1.47 Sat Mar 13 13:45:05 2010 +++ src/sbin/raidctl/raidctl.c Tue Mar 16 03:23:47 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: raidctl.c,v 1.47 2010/03/13 13:45:05 plunky Exp $ */ +/* $NetBSD: raidctl.c,v 1.48 2010/03/16 03:23:47 jld Exp $ */ /*- * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ #include <sys/cdefs.h> #ifndef lint -__RCSID("$NetBSD: raidctl.c,v 1.47 2010/03/13 13:45:05 plunky Exp $"); +__RCSID("$NetBSD: raidctl.c,v 1.48 2010/03/16 03:23:47 jld Exp $"); #endif @@ -487,8 +487,15 @@ int dis, dr; struct rf_pmstat st; - do_ioctl(fd, RAIDFRAME_PARITYMAP_STATUS, &st, - "RAIDFRAME_PARITYMAP_STATUS"); + if (ioctl(fd, RAIDFRAME_PARITYMAP_STATUS, &st) == -1) { + if (errno == EINVAL) { + printf("raid%d: has no parity; parity map disabled\n", + raidID); + return; + } + err(1, "ioctl (%s) failed", "RAIDFRAME_PARITYMAP_STATUS"); + } + if (st.enabled) { if (0 > humanize_number(srs, 7, st.region_size * DEV_BSIZE, "B", HN_AUTOSCALE, HN_NOSPACE))