From owner-cvs-src-old@FreeBSD.ORG Tue Nov 17 20:49:36 2009 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BA4211065697 for ; Tue, 17 Nov 2009 20:49:36 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A80BA8FC12 for ; Tue, 17 Nov 2009 20:49:36 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id nAHKnaqa077419 for ; Tue, 17 Nov 2009 20:49:36 GMT (envelope-from mav@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id nAHKnaRT077418 for cvs-src-old@freebsd.org; Tue, 17 Nov 2009 20:49:36 GMT (envelope-from mav@repoman.freebsd.org) Message-Id: <200911172049.nAHKnaRT077418@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to mav@repoman.freebsd.org using -f From: Alexander Motin Date: Tue, 17 Nov 2009 20:49:26 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: RELENG_8 Subject: cvs commit: src/sys/cam cam_xpt.c cam_xpt_internal.h src/sys/cam/ata ata_xpt.c src/sys/cam/scsi scsi_xpt.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Nov 2009 20:49:36 -0000 mav 2009-11-17 20:49:26 UTC FreeBSD src repository Modified files: (Branch: RELENG_8) sys/cam cam_xpt.c cam_xpt_internal.h sys/cam/ata ata_xpt.c sys/cam/scsi scsi_xpt.c Log: SVN rev 199435 on 2009-11-17 20:49:26Z by mav MFC r198748, r198782: Fix reference counting bug, when device unreferenced before invalidated. To do it, do not handle validity flag as another reference, but explicitly modify reference count each time flag is modified. The async callback could free the device. If it is a broadcast async, it doesn't hold device reference, so take our own reference. Revision Changes Path 1.3.2.9 +6 -1 src/sys/cam/ata/ata_xpt.c 1.217.2.13 +31 -22 src/sys/cam/cam_xpt.c 1.1.2.4 +3 -3 src/sys/cam/cam_xpt_internal.h 1.3.2.4 +17 -5 src/sys/cam/scsi/scsi_xpt.c