From owner-cvs-all@FreeBSD.ORG Fri Mar 25 17:30:31 2005 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8D5CF16A4D3; Fri, 25 Mar 2005 17:30:31 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7686E43D1D; Fri, 25 Mar 2005 17:30:31 +0000 (GMT) (envelope-from das@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2PHUVCx066154; Fri, 25 Mar 2005 17:30:31 GMT (envelope-from das@repoman.freebsd.org) Received: (from das@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2PHUV0B066153; Fri, 25 Mar 2005 17:30:31 GMT (envelope-from das) Message-Id: <200503251730.j2PHUV0B066153@repoman.freebsd.org> From: David Schultz Date: Fri, 25 Mar 2005 17:30:31 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/sys proc.h src/sys/ufs/ffs ffs_softdep.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 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: Fri, 25 Mar 2005 17:30:31 -0000 das 2005-03-25 17:30:31 UTC FreeBSD src repository Modified files: sys/sys proc.h sys/ufs/ffs ffs_softdep.c Log: When the softupdates worklist gets too long, threads that attempt to add more work are forced to process two worklist items first. However, processing an item may generate additional work, causing the unlucky thread to recursively process the worklist. Add a per-thread flag to detect this situation and avoid the recursion. This should fix the stack overflows that could occur while removing large directory trees. Tested by: kris Reviewed by: mckusick Revision Changes Path 1.422 +1 -0 src/sys/sys/proc.h 1.179 +5 -2 src/sys/ufs/ffs/ffs_softdep.c