From owner-freebsd-rc@FreeBSD.ORG Sat Apr 23 22:40:34 2011 Return-Path: Delivered-To: rc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB26D106564A; Sat, 23 Apr 2011 22:40:34 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-jnhn.mail.uoguelph.ca (esa-jnhn.mail.uoguelph.ca [131.104.91.44]) by mx1.freebsd.org (Postfix) with ESMTP id 8CA6B8FC13; Sat, 23 Apr 2011 22:40:34 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApwEABhVs02DaFvO/2dsb2JhbACET6IQiHCoK49qgSmDUH0EjjU X-IronPort-AV: E=Sophos;i="4.64,259,1301889600"; d="scan'208";a="119301375" Received: from erie.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.206]) by esa-jnhn-pri.mail.uoguelph.ca with ESMTP; 23 Apr 2011 18:40:24 -0400 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id 6EAACB3F3E; Sat, 23 Apr 2011 18:40:24 -0400 (EDT) Date: Sat, 23 Apr 2011 18:40:24 -0400 (EDT) From: Rick Macklem To: Doug Barton Message-ID: <1308036720.478939.1303598424273.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <4DB3089E.3070304@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [172.17.91.202] X-Mailer: Zimbra 6.0.10_GA_2692 (ZimbraWebClient - IE7 (Win)/6.0.10_GA_2692) Cc: rc@freebsd.org Subject: Re: rc scripts change for review X-BeenThere: freebsd-rc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion related to /etc/rc.d design and implementation." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Apr 2011 22:40:35 -0000 > > > One thing I am not sure about is the REQUIRE: list in mountd. > > nfsserver and nfssrv essentially load the respective module. They > > are only > > used if sysctl variables need to be set and that's actually done by > > nfsd. > > (Should they be listed in mountd or nfsd or ???) > > It's not a good idea to add single scripts that only have a tiny > function, especially if they are only called conditionally (I.e., they > contain KEYWORD: nostart). It's preferred to handle these things > things > in the script that needs them, or if it's necessary in more than one > script to add a function to the appropriate .subr (rc, or network). > > So can you say a little more about what you're trying to accomplish? > It's not clear to me why instead of doing this: > > + if ! sysctl vfs.newnfs >/dev/null 2>&1; then > + force_depend nfssrv || return 1 > + fi > > you would not just do this: > > + if ! sysctl vfs.newnfs >/dev/null 2>&1; then > + load_kld nfsd > + fi > Well, the intent of the above was to get the module loaded so that sysctl could manipulate its sysctl variables. I played with it a bit and it turns out that neither of the above code snippets work in the sense that they don't affect the outcome. What is needed to make the sysctls work is "nfssrv" has to be in the REQUIRED: list for either mountd or nfsd. Without it, the sysctls fail with unknown oid. (I'm guessing there is some delay between the load_kld and when the module gets its sysctl variables registered?) Now, I'm not sure whether there is any advantage to specifying "nfssrv" in nfsd or mountd, although both seem to work when I test them. "nfsserver" is in mountd, so unless you guys have a better suggestion, that's where I'll leave it. rick