From owner-cvs-all@FreeBSD.ORG Thu Sep 15 06:57:28 2005 Return-Path: X-Original-To: cvs-all@FreeBSD.org 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 B55EC16A41F; Thu, 15 Sep 2005 06:57:28 +0000 (GMT) (envelope-from phk@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8780343D4C; Thu, 15 Sep 2005 06:57:28 +0000 (GMT) (envelope-from phk@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 j8F6vSk2038374; Thu, 15 Sep 2005 06:57:28 GMT (envelope-from phk@repoman.freebsd.org) Received: (from phk@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j8F6vSir038373; Thu, 15 Sep 2005 06:57:28 GMT (envelope-from phk) Message-Id: <200509150657.j8F6vSir038373@repoman.freebsd.org> From: Poul-Henning Kamp Date: Thu, 15 Sep 2005 06:57:28 +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/fs/devfs devfs.h devfs_devs.c devfs_rule.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: Thu, 15 Sep 2005 06:57:28 -0000 phk 2005-09-15 06:57:28 UTC FreeBSD src repository Modified files: sys/fs/devfs devfs.h devfs_devs.c devfs_rule.c Log: Close a race which could result in unwarranted "ruleset %d already running" panics. Previously, recursion through the "include" feature was prevented by marking each ruleset as "running" when applied. This doesn't work for the case where two DEVFS instances try to apply the same ruleset at the same time. Instead introduce the sysctl vfs.devfs.rule_depth (default == 1) which limits how many levels of "include" we will traverse. Be aware that traversal of "include" is recursive and kernel stack size is limited. MFC: after 3 days Revision Changes Path 1.24 +2 -0 src/sys/fs/devfs/devfs.h 1.41 +4 -0 src/sys/fs/devfs/devfs_devs.c 1.16 +28 -44 src/sys/fs/devfs/devfs_rule.c