svn commit: r249635 - stable/9/sys/dev/ciss
Sean Bruno
sbruno at FreeBSD.org
Fri Apr 19 05:28:08 UTC 2013
Author: sbruno
Date: Fri Apr 19 05:28:08 2013
New Revision: 249635
URL: http://svnweb.freebsd.org/changeset/base/249635
Log:
MFC r249170
Notify CAM on state* change to a logical volume not status. This resolves
the issues reported regarding camcontrol devlist not showing the rebuild
states of volumes unless an explicit camcontrol rescan was executed.
Modified:
stable/9/sys/dev/ciss/ciss.c
Directory Properties:
stable/9/sys/ (props changed)
stable/9/sys/dev/ (props changed)
Modified: stable/9/sys/dev/ciss/ciss.c
==============================================================================
--- stable/9/sys/dev/ciss/ciss.c Fri Apr 19 05:13:57 2013 (r249634)
+++ stable/9/sys/dev/ciss/ciss.c Fri Apr 19 05:28:08 2013 (r249635)
@@ -3965,7 +3965,8 @@ static void
ciss_notify_logical(struct ciss_softc *sc, struct ciss_notify *cn)
{
struct ciss_ldrive *ld;
- int ostatus, bus, target;
+ int bus, target;
+ int rescan_ld;
debug_called(2);
@@ -3988,7 +3989,6 @@ ciss_notify_logical(struct ciss_softc *s
/*
* Update our idea of the drive's status.
*/
- ostatus = ciss_decode_ldrive_status(cn->data.logical_status.previous_state);
ld->cl_status = ciss_decode_ldrive_status(cn->data.logical_status.new_state);
if (ld->cl_lstatus != NULL)
ld->cl_lstatus->status = cn->data.logical_status.new_state;
@@ -3996,7 +3996,9 @@ ciss_notify_logical(struct ciss_softc *s
/*
* Have CAM rescan the drive if its status has changed.
*/
- if (ostatus != ld->cl_status) {
+ rescan_ld = (cn->data.logical_status.previous_state !=
+ cn->data.logical_status.new_state) ? 1 : 0;
+ if (rescan_ld) {
ld->cl_update = 1;
ciss_notify_rescan_logical(sc);
}
More information about the svn-src-stable-9
mailing list