From owner-freebsd-fs@FreeBSD.ORG Mon Feb 6 13:13:39 2012 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1CC40106566C for ; Mon, 6 Feb 2012 13:13:39 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mail.vx.sk (mail.vx.sk [IPv6:2a01:4f8:150:6101::4]) by mx1.freebsd.org (Postfix) with ESMTP id D06A28FC0A for ; Mon, 6 Feb 2012 13:13:38 +0000 (UTC) Received: from core2.vx.sk (localhost [127.0.0.2]) by mail.vx.sk (Postfix) with ESMTP id 3D44D2184D; Mon, 6 Feb 2012 14:13:38 +0100 (CET) X-Virus-Scanned: amavisd-new at mail.vx.sk Received: from mail.vx.sk by core2.vx.sk (amavisd-new, unix socket) with LMTP id Whx8CXN260W1; Mon, 6 Feb 2012 14:13:27 +0100 (CET) Received: from [10.0.3.3] (188-167-66-148.dynamic.chello.sk [188.167.66.148]) by mail.vx.sk (Postfix) with ESMTPSA id 9760621836; Mon, 6 Feb 2012 14:13:27 +0100 (CET) Message-ID: <4F2FD1F6.7020903@FreeBSD.org> Date: Mon, 06 Feb 2012 14:13:26 +0100 From: Martin Matuska User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0) Gecko/20120129 Thunderbird/10.0 MIME-Version: 1.0 To: Konstantin Belousov References: <4F2F9CB9.3040000@FreeBSD.org> <20120206123613.GR3283@deviant.kiev.zoral.com.ua> <4F2FCEE6.1080400@FreeBSD.org> <20120206130414.GS3283@deviant.kiev.zoral.com.ua> In-Reply-To: <20120206130414.GS3283@deviant.kiev.zoral.com.ua> X-Enigmail-Version: 1.3.5 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: freebsd-fs@freebsd.org Subject: Re: [CFR][DEVFS] Add "ruleset" mount option X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Feb 2012 13:13:39 -0000 On 6. 2. 2012 14:04, Konstantin Belousov wrote: > On Mon, Feb 06, 2012 at 02:00:22PM +0100, Martin Matuska wrote: >> On 6. 2. 2012 13:36, Konstantin Belousov wrote: >>> On Mon, Feb 06, 2012 at 10:26:17AM +0100, Martin Matuska wrote: >>>> The devfs(8) command supports configuring specific rulesets for devfs(5) >>>> mounts. >>>> However, it operates on already mounted devfs filesystems only and it is >>>> impossible to configure a specific ruleset on mount-time. >>>> >>>> The attached patch adds a "ruleset" mount option to devfs mounts. >>>> The ruleset is automatically applied upon mount time. If the ruleset >>>> doesn't exist, an empty ruleset with the given numer is created and >>>> can be modified with devfs(8) later. >>>> >>>> The patch is also available at: >>>> http://people.freebsd.org/~mm/patches/devfs/devfs_mount_ruleset.patch >>>> >>>> Please review and/or comment my attached patch. >>>> >>> Did you tested this with witness turned on ? It seems not. >> Yes, I did, no warnings or error messages on my console. > Are you sure ? Did you tried to change rulesets after mounting > some devfs with ruleset option ? > > From what I see, sx_rules is after dm_lock, e.g. in devfs_rules_ioctl(), > while your patch insists on reversed order. In my patch sx_rules is after dm_lock, too: devfs_vfsops.c: if (rsnum != 0) { sx_xlock(&fmp->dm_lock); devfs_ruleset_set(rsnum, fmp); sx_xunlock(&fmp->dm_lock); } devfs_rule.c: void devfs_ruleset_set(devfs_rsnum rsnum, struct devfs_mount *dm) { sx_assert(&dm->dm_lock, SX_XLOCKED); sx_xlock(&sx_rules); devfs_ruleset_use(rsnum, dm); sx_xunlock(&sx_rules); } -- Martin Matuska FreeBSD committer http://blog.vx.sk