From nobody Wed Apr 06 02:45:21 2022 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id D87651A80993; Wed, 6 Apr 2022 02:45:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KY84x3XSxz4ZdY; Wed, 6 Apr 2022 02:45:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1649213121; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=o9KWB3RHXJprWQb2W7CoantQ3jP4x6euZDX6agOSmFw=; b=msI5LX7SDF+B+d6xbh6bKM/3OB49+iTM74G3bbWeWJEIvM69V/AW/9AkKkLMFRjVEUt7Aj a4oXV2b+TgiPslSB3kbBCZ7bQuHVlylPJYC7la/yO49cHeNDruYA5nPjaZPZJLxx1EwSUe supiZ09fzTF5ahiNXSV0uj9AJcQKhoxlv1bRY7kFdlulOgFUjYqy4+tP6CJMj8w1Y5/oou RP1cT4PHud+gAQIu1VIPDzUGZPS7Wjxh7qF/ngFnHBfkdg6XsYUZdloLH0RkcabFY5yUKC g+WM5f2H6PnEH/GWlYIErG1FP5GHkDWZzKqIx7mh1b7CW609naH4A6IsoUB4Ag== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 408B312E22; Wed, 6 Apr 2022 02:45:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 2362jLdB006519; Wed, 6 Apr 2022 02:45:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 2362jLjM006518; Wed, 6 Apr 2022 02:45:21 GMT (envelope-from git) Date: Wed, 6 Apr 2022 02:45:21 GMT Message-Id: <202204060245.2362jLjM006518@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Motin Subject: git: 59c15b83be87 - stable/13 - geom: Allow "load" command for already loaded modules. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mav X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 59c15b83be875bf0b4c09bf2c49e133d8f21a911 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1649213121; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=o9KWB3RHXJprWQb2W7CoantQ3jP4x6euZDX6agOSmFw=; b=v6ZbCImHTitgW3Gk7jtU7eyC0FrjDDEPqajZZyPjN7Cy9vO6gLSiZEpBxC5AtxbXIbprAN JIIwLuNMpQFn48IHbbnrHoqkSvHZrNioI1e+kDvU/k9kehVxO57knf3Y3rgB9vaOfurr8P YCGm0PLd0tVvWMWMiv7lmDa08/7jjYZSW0Mhchrm8U0+AJp2K86FiAh6yIMvz+VYF7jKuz 5MMSRWfmCJb8RUXgSFb3rrmHBL4cU8XxVxiT1cPEPTTzUcaLTrV2uy0WgLx0ED1vl+Uvyy /Rk6r2QU+pd+yN+Gz5U3Jjm2wJ23zvSV3zyrQgR3ORmwKI/UMv+eYfafdsimAg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1649213121; a=rsa-sha256; cv=none; b=Tu29du9vdyWoS0K63MO1jsQczrgndFIXMoG91ctGOG9P2JLtg+pZfL9WrdKlf4L/QzGiP5 4FUcUVG5B24KkKHUIUFr3BI1GXS690rZk3jFLCzrxiEMikFlFjkois5Mcq20OFojl72wGq leDlo6rWzlPcKD15RPNOQFeaSuNvDzLKmmRc6DjuWWhk5RZpPwkZh5AF7XENLaJRrPzPIH Isg8kBLQb8ghlww97TB5xtwrhmcVZ+9aHFpq5B1OH/BN5vo9HXey1qpe/IMlqa2rV7JIOj 2MNGDiaAk0ItwmTqFX5COIg7EzxzdIb4h06soJbPtvPoL5XnXEkjZ7wjQCyJUw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=59c15b83be875bf0b4c09bf2c49e133d8f21a911 commit 59c15b83be875bf0b4c09bf2c49e133d8f21a911 Author: Alexander Motin AuthorDate: 2022-03-08 17:04:42 +0000 Commit: Alexander Motin CommitDate: 2022-04-06 02:07:40 +0000 geom: Allow "load" command for already loaded modules. I see more user-friendly to do nothing if the module is already loaded, rather than returning quite confusing error message. As side effect it allows to avoid std_list_available() call, using quite expensive on large systems geom_gettree(). MFC after: 1 month (cherry picked from commit 5678114cd8b310bd6f0a5699f036fc5b18addd65) --- sbin/geom/core/geom.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sbin/geom/core/geom.c b/sbin/geom/core/geom.c index 9d93e9b9989f..b29d73327df8 100644 --- a/sbin/geom/core/geom.c +++ b/sbin/geom/core/geom.c @@ -75,6 +75,8 @@ static struct g_command *class_commands = NULL; static struct g_command *find_command(const char *cmdstr, int flags); static void list_one_geom_by_provider(const char *provider_name); static int std_available(const char *name); +static int std_list_available(void); +static int std_load_available(void); static void std_help(struct gctl_req *req, unsigned flags); static void std_list(struct gctl_req *req, unsigned flags); @@ -657,7 +659,7 @@ get_class(int *argc, char ***argv) set_class_name(); /* If we can't load or list, it's not a class. */ - if (!std_available("load") && !std_available("list")) + if (!std_load_available() && !std_list_available()) errx(EXIT_FAILURE, "Invalid class name '%s'.", class_name); if (*argc < 1) @@ -1319,10 +1321,10 @@ std_load_available(void) snprintf(name, sizeof(name), "g_%s", class_name); /* - * If already in kernel, "load" command is not available. + * If already in kernel, "load" command is NOP. */ if (modfind(name) >= 0) - return (0); + return (1); bzero(paths, sizeof(paths)); len = sizeof(paths); if (sysctlbyname("kern.module_path", paths, &len, NULL, 0) < 0)