changeset 12629:8a89ca2bbe3a

6914620 SVM can panic system when attempting to access a damaged one-sided mirror
author Ray Hassan <Ray.Hassan@oracle.COM>
date Wed, 16 Jun 2010 10:25:09 +0100
parents 7da42ae5ee37
children e9b26c370c79
files usr/src/uts/common/io/lvm/mirror/mirror.c
diffstat 1 files changed, 5 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/io/lvm/mirror/mirror.c	Wed Jun 16 09:11:16 2010 +0200
+++ b/usr/src/uts/common/io/lvm/mirror/mirror.c	Wed Jun 16 10:25:09 2010 +0100
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 #include <sys/param.h>
@@ -356,9 +355,11 @@
 			open_comp = (frm_probe) ?
 			    (shared->ms_flags & MDM_S_PROBEOPEN):
 			    (shared->ms_flags & MDM_S_ISOPEN);
-			if ((shared->ms_flags & MDM_S_IOERR || !open_comp) &&
+			if (((shared->ms_flags & MDM_S_IOERR || !open_comp) &&
 			    ((shared->ms_state == CS_OKAY) ||
-			    (shared->ms_state == CS_RESYNC))) {
+			    (shared->ms_state == CS_RESYNC))) ||
+			    (!open_comp &&
+			    (shared->ms_state == CS_LAST_ERRED))) {
 				if (clr_error) {
 					shared->ms_flags &= ~MDM_S_IOERR;
 				}