From owner-cvs-all@FreeBSD.ORG Mon Mar 31 07:47:08 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BC208106566C; Mon, 31 Mar 2008 07:47:08 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BFBBC8FC15; Mon, 31 Mar 2008 07:47:08 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m2V7l8xc078263; Mon, 31 Mar 2008 07:47:08 GMT (envelope-from jeff@repoman.freebsd.org) Received: (from jeff@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m2V7l8pk078262; Mon, 31 Mar 2008 07:47:08 GMT (envelope-from jeff) Message-Id: <200803310747.m2V7l8pk078262@repoman.freebsd.org> From: Jeff Roberson Date: Mon, 31 Mar 2008 07:47:08 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/ufs/ffs ffs_snapshot.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 Mar 2008 07:47:08 -0000 jeff 2008-03-31 07:47:08 UTC FreeBSD src repository Modified files: sys/ufs/ffs ffs_snapshot.c Log: - Don't free snapdata structures when they are no longer in use. Keeping the lockmgr lock valid allows us to switch the v_lock pointer in snapshot vnodes between the embedded lockmgr lock and snapdata lock without needing the vnode interlock to protect against races - Keep unused snapdata structures in a list. - Add a function to lock the devvp and allocate a snapdata to it or acquire a new one without races. The old function was safe from creation races because we set the mount flag when creating snapshots and thus serializing them. However, it might have been subject to destroying races. Reviewed by: tegge Revision Changes Path 1.142 +109 -67 src/sys/ufs/ffs/ffs_snapshot.c