Author: scottl
Date: Sun Mar  1 16:31:35 2009
New Revision: 189242
URL: http://svn.freebsd.org/changeset/base/189242

Log:
  Merge 182433: Fix locking mistake in the da driver.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/cam/scsi/scsi_da.c
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)

Modified: stable/7/sys/cam/scsi/scsi_da.c
==============================================================================
--- stable/7/sys/cam/scsi/scsi_da.c     Sun Mar  1 16:28:17 2009        
(r189241)
+++ stable/7/sys/cam/scsi/scsi_da.c     Sun Mar  1 16:31:35 2009        
(r189242)
@@ -674,18 +674,19 @@ daopen(struct disk *dp)
                softc->disk->d_fwheads = softc->params.heads;
                softc->disk->d_devstat->block_size = softc->params.secsize;
                softc->disk->d_devstat->flags &= ~DEVSTAT_BS_UNAVAILABLE;
-       }
-       
-       if (error == 0) {
+
                if ((softc->flags & DA_FLAG_PACK_REMOVABLE) != 0 &&
                    (softc->quirks & DA_Q_NO_PREVENT) == 0)
                        daprevent(periph, PR_PREVENT);
-       } else {
+       } else
                softc->flags &= ~DA_FLAG_OPEN;
-               cam_periph_release(periph);
-       }
+
        cam_periph_unhold(periph);
        cam_periph_unlock(periph);
+
+       if (error != 0) {
+               cam_periph_release(periph);
+       }
        return (error);
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to