From patchwork Mon Jan 11 21:41:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12011687 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EF6A1C433E6 for ; Mon, 11 Jan 2021 21:42:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B4D1822C7E for ; Mon, 11 Jan 2021 21:42:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730835AbhAKVm1 (ORCPT ); Mon, 11 Jan 2021 16:42:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46314 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725917AbhAKVm1 (ORCPT ); Mon, 11 Jan 2021 16:42:27 -0500 Received: from mail-io1-xd32.google.com (mail-io1-xd32.google.com [IPv6:2607:f8b0:4864:20::d32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EC421C061794 for ; Mon, 11 Jan 2021 13:41:46 -0800 (PST) Received: by mail-io1-xd32.google.com with SMTP id 81so25656ioc.13 for ; Mon, 11 Jan 2021 13:41:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=b5liZYq4WMP3PzOsZBtOQnvuU8+oGFgGBRuz1trokjI=; b=g2wIJhKnP7d+lMouvkFMwcicgLwJmUgkU93JdC6CodP1QfxsijQQXvyQRNZ6yohd6k cQQDcan7jkg3SLQc8EpPdNTvwoKg1AHKbgAdewSv79dZJrkj5VOCXEMYvyYmw3txGsgF zShvVe5Asf/285n2ftI3g/W2yk66uyUDJlHUIsnEBmeuhqJxtcLYPaTb54lwIEeNvTn6 u8KaaLIrSEh9Tu09/jaIhGLIyzmqiZvc0HLV9yT/G5oEfKjlVI2OkH4xxcGpUkhWyu80 k4aelI0qh5wbWIvUzqVIz34+PjWL3lfERAeNwtRs6SOo40viNK5w+PiASpf2Zmvdgysi nGAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=b5liZYq4WMP3PzOsZBtOQnvuU8+oGFgGBRuz1trokjI=; b=RcC/8P6EdhtPyt2feLPDrJACBeqeeBokFROIbHZ8a7f563uhA/jQWniaM05rr8Me1u aOutZqb/dKAak3+ZJ2vIKNlPWIex7Mxyec2E9VtceSdTxq7GjUSBzI46oLaEjWB+xBS4 GG7rvYFZBSNN5+SC9LPUVK86+ytXIt7j9nyaUkgaF9y7sDFASXDnzSUX/p5hiyDUP6Tx SqKHf0vBNAJF0bycZ7Mrv+GkvynvYvH52L6L0T8wGqjAbrxJXJLB5aGGcw7rY0zUK1vN msqrGVgs5DaI3fxstqjqMNJHxtX29QW91K484Z+F4iNrDZAJ8d0cnQxv3anIf1wFLVkr +8iw== X-Gm-Message-State: AOAM532LZzIbFPPNyFLbyVVuyEh6wU2dtQJ7FfEwnHWcrbBQ861/BZCH gVjICYQnMClTqrqBRFf7Ady/DkBxgNc54w== X-Google-Smtp-Source: ABdhPJzGotqXSFYP8amAq2P10hMq353I9Nw9n6WJXeMPyRPUbW0xrxjv9SBbcIT1wJ0oHtjhpSYuYg== X-Received: by 2002:a5e:9b06:: with SMTP id j6mr955810iok.171.1610401306106; Mon, 11 Jan 2021 13:41:46 -0800 (PST) Received: from gouda.nowheycreamery.com (c-68-32-74-190.hsd1.mi.comcast.net. [68.32.74.190]) by smtp.gmail.com with ESMTPSA id 143sm681712ila.4.2021.01.11.13.41.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Jan 2021 13:41:45 -0800 (PST) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [RFC PATCH 1/7] net: Add a /sys/net directory to sysfs Date: Mon, 11 Jan 2021 16:41:37 -0500 Message-Id: <20210111214143.553479-2-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210111214143.553479-1-Anna.Schumaker@Netapp.com> References: <20210111214143.553479-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker Sunrpc will want to place its files under this directory Signed-off-by: Anna Schumaker --- include/net/sock.h | 4 ++++ net/socket.c | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/include/net/sock.h b/include/net/sock.h index bdc4323ce53c..cd986c6fbc6f 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -1765,6 +1765,10 @@ void sk_common_release(struct sock *sk); /* Initialise core socket variables */ void sock_init_data(struct socket *sock, struct sock *sk); + +/* /sys/net */ +extern struct kobject *net_kobj; + /* * Socket reference counting postulates. * diff --git a/net/socket.c b/net/socket.c index 33e8b6c4e1d3..43986419d673 100644 --- a/net/socket.c +++ b/net/socket.c @@ -141,6 +141,10 @@ static void sock_show_fdinfo(struct seq_file *m, struct file *f) #define sock_show_fdinfo NULL #endif +/* /sys/net */ +struct kobject *net_kobj; +EXPORT_SYMBOL_GPL(net_kobj); + /* * Socket files have a set of 'special' operations as well as the generic file ones. These don't appear * in the operation structures but are done directly via the socketcall() multiplexor. @@ -3060,6 +3064,10 @@ static int __init sock_init(void) goto out_mount; } + net_kobj = kobject_create_and_add("net", NULL); + if (!net_kobj) + printk(KERN_WARNING "%s: kobj create error\n", __func__); + /* The real protocol initialization is performed in later initcalls. */ From patchwork Mon Jan 11 21:41:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12011691 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2F409C433E9 for ; Mon, 11 Jan 2021 21:42:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D1CDD22CAF for ; Mon, 11 Jan 2021 21:42:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731071AbhAKVm2 (ORCPT ); Mon, 11 Jan 2021 16:42:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46320 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730855AbhAKVm2 (ORCPT ); Mon, 11 Jan 2021 16:42:28 -0500 Received: from mail-il1-x135.google.com (mail-il1-x135.google.com [IPv6:2607:f8b0:4864:20::135]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C118C061795 for ; Mon, 11 Jan 2021 13:41:48 -0800 (PST) Received: by mail-il1-x135.google.com with SMTP id v3so762648ilo.5 for ; Mon, 11 Jan 2021 13:41:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Lej7piHj5hXHvzk8ywmlnNvWesLKcT/8mF40IGDVQGw=; b=LluffieLEamzcLFTNlXgc8Kf9PyM6E4Vz6u2cr5eJpnLqFmb7TC90/U0b+GZS9KffI gdfcSaseymTHorfoJRvFJA13VgeBQlOTzu9+VR3zRVOaSSv70LxHQWh7ejeXnnnv/ass b4GVauedtOFiHkGpa5jbXf/h+3DeP9UW69c1UwFrCS6FsDVOb5Qf6Q+JeTdglXxEJ6aI nfWzKfNxWUq/XRJIIOTAXryCIjsETgbqkDjaSlca3nHIHT53BWFtP/BBpiAveU1fbH/c V16REblqP/IJKHZItYnlmlEp52sD2mu6eA6rPu/8BH4pgkRTslZwWQAPFWFHdm2fD0eZ v/rQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Lej7piHj5hXHvzk8ywmlnNvWesLKcT/8mF40IGDVQGw=; b=ggC3b+mZrND+u397mgQW2ss1oOcV3oygTJaEfmM4e/BI9fA9axInoNnNMTfT7WxmDT /qns0l7mCrFfOqt5rCNkwe5aCnO+0yxOQVSpZhFTCx2nqC+Mo5zFi7C67FqedDWcpUIU oZdhceZ1iUgtucJKOc+EKQVr9JrEPCoxRWuQw6D58Xe4QuHzPDFzEsaDwqHpllwHFDp5 Sehry56dvUWm181xX7Lo1Wcvu+3b7elray8EHkWtTCud7CGfFpiU0TZnQORxmzCGUJGD E3atuEkSPHxIuU13pPZhmRjQkEqCBxJU8otnKX9L1qhYd/ye3YH0tqkH3ya11fA/EAtZ YakQ== X-Gm-Message-State: AOAM531+Ae3AY160Btmh7BUvMgiV7+7tIZdgZ6CneCF0N27r1InnSQCa 6qgLyp1cHB8y/E6Us1J4s9ZBlPnb1J8ydg== X-Google-Smtp-Source: ABdhPJzYI0azdm6fCDyy4/LEh99U9tCTR/Mpl/CbIhXvJCBwlECogvhCDgVjTVTBgMaaiUkePnKg9Q== X-Received: by 2002:a92:c692:: with SMTP id o18mr1069009ilg.215.1610401307194; Mon, 11 Jan 2021 13:41:47 -0800 (PST) Received: from gouda.nowheycreamery.com (c-68-32-74-190.hsd1.mi.comcast.net. [68.32.74.190]) by smtp.gmail.com with ESMTPSA id 143sm681712ila.4.2021.01.11.13.41.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Jan 2021 13:41:46 -0800 (PST) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [RFC PATCH 2/7] sunrpc: Create a sunrpc directory under /sys/net/ Date: Mon, 11 Jan 2021 16:41:38 -0500 Message-Id: <20210111214143.553479-3-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210111214143.553479-1-Anna.Schumaker@Netapp.com> References: <20210111214143.553479-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker This is where we'll put per-rpc_client related files Signed-off-by: Anna Schumaker --- net/sunrpc/Makefile | 2 +- net/sunrpc/sunrpc_syms.c | 8 ++++++++ net/sunrpc/sysfs.c | 21 +++++++++++++++++++++ net/sunrpc/sysfs.h | 13 +++++++++++++ 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 net/sunrpc/sysfs.c create mode 100644 net/sunrpc/sysfs.h diff --git a/net/sunrpc/Makefile b/net/sunrpc/Makefile index 9488600451e8..1c8de397d6ad 100644 --- a/net/sunrpc/Makefile +++ b/net/sunrpc/Makefile @@ -12,7 +12,7 @@ sunrpc-y := clnt.o xprt.o socklib.o xprtsock.o sched.o \ auth.o auth_null.o auth_unix.o \ svc.o svcsock.o svcauth.o svcauth_unix.o \ addr.o rpcb_clnt.o timer.o xdr.o \ - sunrpc_syms.o cache.o rpc_pipe.o \ + sunrpc_syms.o cache.o rpc_pipe.o sysfs.o \ svc_xprt.o \ xprtmultipath.o sunrpc-$(CONFIG_SUNRPC_DEBUG) += debugfs.o diff --git a/net/sunrpc/sunrpc_syms.c b/net/sunrpc/sunrpc_syms.c index 236fadc4a439..3b57efc692ec 100644 --- a/net/sunrpc/sunrpc_syms.c +++ b/net/sunrpc/sunrpc_syms.c @@ -24,6 +24,7 @@ #include #include "sunrpc.h" +#include "sysfs.h" #include "netns.h" unsigned int sunrpc_net_id; @@ -103,6 +104,10 @@ init_sunrpc(void) if (err) goto out4; + err = rpc_sysfs_init(); + if (err) + goto out5; + sunrpc_debugfs_init(); #if IS_ENABLED(CONFIG_SUNRPC_DEBUG) rpc_register_sysctl(); @@ -111,6 +116,8 @@ init_sunrpc(void) init_socket_xprt(); /* clnt sock transport */ return 0; +out5: + unregister_rpc_pipefs(); out4: unregister_pernet_subsys(&sunrpc_net_ops); out3: @@ -124,6 +131,7 @@ init_sunrpc(void) static void __exit cleanup_sunrpc(void) { + rpc_sysfs_exit(); rpc_cleanup_clids(); rpcauth_remove_module(); cleanup_socket_xprt(); diff --git a/net/sunrpc/sysfs.c b/net/sunrpc/sysfs.c new file mode 100644 index 000000000000..efff6977095c --- /dev/null +++ b/net/sunrpc/sysfs.c @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2020 Anna Schumaker + */ +#include + +//struct kobject *rpc_client_kobj; +static struct kset *rpc_client_kset; + +int rpc_sysfs_init(void) +{ + rpc_client_kset = kset_create_and_add("sunrpc", NULL, net_kobj); + if (!rpc_client_kset) + return -ENOMEM; + return 0; +} + +void rpc_sysfs_exit(void) +{ + kset_unregister(rpc_client_kset); +} diff --git a/net/sunrpc/sysfs.h b/net/sunrpc/sysfs.h new file mode 100644 index 000000000000..93c3cd220506 --- /dev/null +++ b/net/sunrpc/sysfs.h @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2020 Anna Schumaker + */ +#ifndef __SUNRPC_SYSFS_H +#define __SUNRPC_SYSFS_H + +extern struct kobject *rpc_client_kobj; + +extern int rpc_sysfs_init(void); +extern void rpc_sysfs_exit(void); + +#endif From patchwork Mon Jan 11 21:41:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12011693 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 57604C43381 for ; Mon, 11 Jan 2021 21:42:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0E59922BED for ; Mon, 11 Jan 2021 21:42:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731463AbhAKVm3 (ORCPT ); Mon, 11 Jan 2021 16:42:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46326 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731409AbhAKVm3 (ORCPT ); Mon, 11 Jan 2021 16:42:29 -0500 Received: from mail-il1-x135.google.com (mail-il1-x135.google.com [IPv6:2607:f8b0:4864:20::135]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0A334C06179F for ; Mon, 11 Jan 2021 13:41:49 -0800 (PST) Received: by mail-il1-x135.google.com with SMTP id o20so132097ilj.11 for ; Mon, 11 Jan 2021 13:41:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2qZ+/NHu9qitlfY9CsT899PIat5X/YwJzyn52LaTMlU=; b=SgEG4Ah5oe/eIPnpOQz8mmW/sjCrJTFcA43O7Xbk2c+7C0+Zbnj4T04z4mUppl6jIf 9jOyzFRvewZXFM6XxZS5T0JCLQCryI6OF7jYdTSTh123188m6qR0MRDPZ0oSp4B/VvtN xQQ346DZU9YZUim/FlKimi60dS6okHtrjCc9mjKNcIGphYkpqIiFu0ogwHJ4Rn1JdR3D c6mNG6wifQ1K8VbHKG9Iy2d4a8TpUL+2+mFyh89Z7c/BANiTMwREAZNZPur+1fZ9D3gG mdQrLdOFBRCimPUUIqpr2DmN185u3ZSQBmKzEMTkArlgmOlvRrm+VK78KhAFeYLFaM3A g9lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=2qZ+/NHu9qitlfY9CsT899PIat5X/YwJzyn52LaTMlU=; b=ATB+RoMiTd9BhBUbP7qwB9MII3wVSobpV95WI0adABQLpWn9zqBUkcvN2zqRNjNNox lTsQbZoFusqzLsNfpobqw6eVIOD2LiOLbXzNonyDYzVPZyaEAz8AeWgdAAk+fJNYYTVG Lrhkp/fugnUwpLHzuzVukUKI3ARQ7GkN87xe83aI5DtBIj4TplYUyizpQUnZXxLYkhVK z5AM4MOIplP97x1WTSftdvR1X1qaTkeNW1XFqt49Q2O9sg7JLCI/X9EmethBqlmGjXa2 YsMMBxwYiDLd2A6iWhd8ODl85Ow3Rmp9snY263dTwV/kVPtp44ANqymKU2LJlmDd2zDH Xrlg== X-Gm-Message-State: AOAM5303roQHuuCIORUlXlMiJf7DUlqAyPDxsauk2aWQ/5MjiqsFdqxg wXW/949Sl9ovkttAMXCf0rsQdGYnWILi3w== X-Google-Smtp-Source: ABdhPJzWDbZYl1hFPuwRVhcvixCzoiE/x61uAACC/zJ6EDvScJ0vcX2YpSDEuMrbeoHzNFKvSXTUrg== X-Received: by 2002:a05:6e02:80b:: with SMTP id u11mr1040603ilm.43.1610401308231; Mon, 11 Jan 2021 13:41:48 -0800 (PST) Received: from gouda.nowheycreamery.com (c-68-32-74-190.hsd1.mi.comcast.net. [68.32.74.190]) by smtp.gmail.com with ESMTPSA id 143sm681712ila.4.2021.01.11.13.41.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Jan 2021 13:41:47 -0800 (PST) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [RFC PATCH 3/7] sunrpc: Create a net/ subdirectory in the sunrpc sysfs Date: Mon, 11 Jan 2021 16:41:39 -0500 Message-Id: <20210111214143.553479-4-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210111214143.553479-1-Anna.Schumaker@Netapp.com> References: <20210111214143.553479-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker For network namespace separation. Signed-off-by: Anna Schumaker --- net/sunrpc/sysfs.c | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/net/sunrpc/sysfs.c b/net/sunrpc/sysfs.c index efff6977095c..afeaec79a9c7 100644 --- a/net/sunrpc/sysfs.c +++ b/net/sunrpc/sysfs.c @@ -4,18 +4,57 @@ */ #include -//struct kobject *rpc_client_kobj; +struct kobject *rpc_client_kobj; static struct kset *rpc_client_kset; +static void rpc_netns_object_release(struct kobject *kobj) +{ + kfree(kobj); +} + +static const struct kobj_ns_type_operations *rpc_netns_object_child_ns_type( + struct kobject *kobj) +{ + return &net_ns_type_operations; +} + +static struct kobj_type rpc_netns_object_type = { + .release = rpc_netns_object_release, + .sysfs_ops = &kobj_sysfs_ops, + .child_ns_type = rpc_netns_object_child_ns_type, +}; + +static struct kobject *rpc_netns_object_alloc(const char *name, + struct kset *kset, struct kobject *parent) +{ + struct kobject *kobj; + kobj = kzalloc(sizeof(*kobj), GFP_KERNEL); + if (kobj) { + kobj->kset = kset; + if (kobject_init_and_add(kobj, &rpc_netns_object_type, + parent, "%s", name) == 0) + return kobj; + kobject_put(kobj); + } + return NULL; +} + int rpc_sysfs_init(void) { rpc_client_kset = kset_create_and_add("sunrpc", NULL, net_kobj); if (!rpc_client_kset) return -ENOMEM; + rpc_client_kobj = rpc_netns_object_alloc("net", rpc_client_kset, NULL); + if (!rpc_client_kobj) { + kset_unregister(rpc_client_kset); + rpc_client_kset = NULL; + return -ENOMEM; + } return 0; } void rpc_sysfs_exit(void) { + kobject_put(rpc_client_kobj); kset_unregister(rpc_client_kset); } From patchwork Mon Jan 11 21:41:40 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12011695 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.9 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 774E1C433E0 for ; Mon, 11 Jan 2021 21:42:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 38EC022C7E for ; Mon, 11 Jan 2021 21:42:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730855AbhAKVmb (ORCPT ); Mon, 11 Jan 2021 16:42:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46330 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731409AbhAKVma (ORCPT ); Mon, 11 Jan 2021 16:42:30 -0500 Received: from mail-il1-x12a.google.com (mail-il1-x12a.google.com [IPv6:2607:f8b0:4864:20::12a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 16681C0617A2 for ; Mon, 11 Jan 2021 13:41:50 -0800 (PST) Received: by mail-il1-x12a.google.com with SMTP id o20so132148ilj.11 for ; Mon, 11 Jan 2021 13:41:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DUNYLDOQanXWj2FaqoPwuiC+IklKVygVPBiMLz2Mkrc=; b=EFoUYT4ntLu7LSg4L6ymBb6D2fMKQzoVjvtI4YzNMLR898P057f8OJ85afULjtiN6B cTUuETYnoMuggJHpp5v/cp2cBcFLehyjNXOncfMSMC1fpZ9fmu3go0fiw/tZtyEO3KDi bX6rzH12yTjaPS+tEDmUq7UCBoQYa/WmVYr9Oi2PaTriummNq+G2bUxnnv08LUYdxUql xVRBtXcZWPtAk+JaPAJkZOdTq9s2KxqhIg08skifdMewxEnAfhYZ7c3Ub4aJzwAID3+L mnrRY7mpLCmfUQYYW36XkTgzmbdQQ+pjo7oVHUemXHSkDQtoYlCWxGVl3WIf5caVUZay sH2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=DUNYLDOQanXWj2FaqoPwuiC+IklKVygVPBiMLz2Mkrc=; b=QQPqeUrVWjYwyd8E5tBcT3z67BA0Unf8aV2IilnYO4fv9nQJR2RbRqR/wlxEGEH2Tf ZpnXiYDw48oa+TsxWBF6iAK7pqToFKXJ51qZd0gEPuaevROd0U8G6wOR0d0N2TGkOnTI zcmYZh6YvlV8NmpJYncEO5cON1um/VHEoXAfxV/jWthCsbDq7t8c8PRdTjEFTB8rwug6 CeH/k/4TJu0IZHoHsm/CIFNEyLNLxZhFEBWlLT0HlfLCasiiGKCJ0NVYR6WMj6FiwemQ zhbMDg6OafG721+VF8B7wEt8hxGdl9efGOJ0Th7/m+IXE5S/uC6oGS5mgwv4imicreYF C/Tg== X-Gm-Message-State: AOAM532S5pcWkb7lBMoaustWWB4RjyZdt16v4AHsgfNYqwf9S5VBUv1x OIhqlU2Qgc9ZOMaVYtYeUDukB2tkphyzcA== X-Google-Smtp-Source: ABdhPJxswfQDfMYwjeZeyCS0s35U5zPr1XmmZ4jVoFDLoBo8WPSznbPw1Weo8UJP7Ti8nJcKJ7LTog== X-Received: by 2002:a92:40c4:: with SMTP id d65mr1068538ill.197.1610401309215; Mon, 11 Jan 2021 13:41:49 -0800 (PST) Received: from gouda.nowheycreamery.com (c-68-32-74-190.hsd1.mi.comcast.net. [68.32.74.190]) by smtp.gmail.com with ESMTPSA id 143sm681712ila.4.2021.01.11.13.41.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Jan 2021 13:41:48 -0800 (PST) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [RFC PATCH 4/7] sunrpc: Create per-rpc_clnt sysfs kobjects Date: Mon, 11 Jan 2021 16:41:40 -0500 Message-Id: <20210111214143.553479-5-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210111214143.553479-1-Anna.Schumaker@Netapp.com> References: <20210111214143.553479-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker These will eventually have files placed under them for sysfs operations. Signed-off-by: Anna Schumaker --- include/linux/sunrpc/clnt.h | 1 + net/sunrpc/clnt.c | 5 +++ net/sunrpc/sysfs.c | 61 +++++++++++++++++++++++++++++++++++++ net/sunrpc/sysfs.h | 8 +++++ 4 files changed, 75 insertions(+) diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h index 02e7a5863d28..503653720e18 100644 --- a/include/linux/sunrpc/clnt.h +++ b/include/linux/sunrpc/clnt.h @@ -71,6 +71,7 @@ struct rpc_clnt { #if IS_ENABLED(CONFIG_SUNRPC_DEBUG) struct dentry *cl_debugfs; /* debugfs directory */ #endif + void *cl_sysfs; /* sysfs directory */ /* cl_work is only needed after cl_xpi is no longer used, * and that are of similar size */ diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 612f0a641f4c..02905eae5c0a 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -41,6 +41,7 @@ #include #include "sunrpc.h" +#include "sysfs.h" #include "netns.h" #if IS_ENABLED(CONFIG_SUNRPC_DEBUG) @@ -300,6 +301,7 @@ static int rpc_client_register(struct rpc_clnt *clnt, int err; rpc_clnt_debugfs_register(clnt); + rpc_netns_sysfs_setup(clnt, net); pipefs_sb = rpc_get_sb_net(net); if (pipefs_sb) { @@ -327,6 +329,7 @@ static int rpc_client_register(struct rpc_clnt *clnt, out: if (pipefs_sb) rpc_put_sb_net(net); + rpc_netns_sysfs_destroy(clnt); rpc_clnt_debugfs_unregister(clnt); return err; } @@ -733,6 +736,7 @@ int rpc_switch_client_transport(struct rpc_clnt *clnt, rpc_unregister_client(clnt); __rpc_clnt_remove_pipedir(clnt); + rpc_netns_sysfs_destroy(clnt); rpc_clnt_debugfs_unregister(clnt); /* @@ -879,6 +883,7 @@ static void rpc_free_client_work(struct work_struct *work) * so they cannot be called in rpciod, so they are handled separately * here. */ + rpc_netns_sysfs_destroy(clnt); rpc_clnt_debugfs_unregister(clnt); rpc_free_clid(clnt); rpc_clnt_remove_pipedir(clnt); diff --git a/net/sunrpc/sysfs.c b/net/sunrpc/sysfs.c index afeaec79a9c7..dd298b9c13e8 100644 --- a/net/sunrpc/sysfs.c +++ b/net/sunrpc/sysfs.c @@ -2,7 +2,9 @@ /* * Copyright (c) 2020 Anna Schumaker */ +#include #include +#include "sysfs.h" struct kobject *rpc_client_kobj; static struct kset *rpc_client_kset; @@ -53,8 +55,67 @@ int rpc_sysfs_init(void) return 0; } +static void rpc_netns_client_release(struct kobject *kobj) +{ + struct rpc_netns_client *c; + + c = container_of(kobj, struct rpc_netns_client, kobject); + kfree(c); +} + +static const void *rpc_netns_client_namespace(struct kobject *kobj) +{ + return container_of(kobj, struct rpc_netns_client, kobject)->net; +} + +static struct kobj_type rpc_netns_client_type = { + .release = rpc_netns_client_release, + .sysfs_ops = &kobj_sysfs_ops, + .namespace = rpc_netns_client_namespace, +}; + void rpc_sysfs_exit(void) { kobject_put(rpc_client_kobj); kset_unregister(rpc_client_kset); } + +static struct rpc_netns_client *rpc_netns_client_alloc(struct kobject *parent, + struct net *net, int clid) +{ + struct rpc_netns_client *p; + + p = kzalloc(sizeof(*p), GFP_KERNEL); + if (p) { + p->net = net; + p->kobject.kset = rpc_client_kset; + if (kobject_init_and_add(&p->kobject, &rpc_netns_client_type, + parent, "%d", clid) == 0) + return p; + kobject_put(&p->kobject); + } + return NULL; +} + +void rpc_netns_sysfs_setup(struct rpc_clnt *clnt, struct net *net) +{ + struct rpc_netns_client *rpc_client; + + rpc_client = rpc_netns_client_alloc(rpc_client_kobj, net, clnt->cl_clid); + if (rpc_client) { + clnt->cl_sysfs = rpc_client; + kobject_uevent(&rpc_client->kobject, KOBJ_ADD); + } +} + +void rpc_netns_sysfs_destroy(struct rpc_clnt *clnt) +{ + struct rpc_netns_client *rpc_client = clnt->cl_sysfs; + + if (rpc_client) { + kobject_uevent(&rpc_client->kobject, KOBJ_REMOVE); + kobject_del(&rpc_client->kobject); + kobject_put(&rpc_client->kobject); + clnt->cl_sysfs = NULL; + } +} diff --git a/net/sunrpc/sysfs.h b/net/sunrpc/sysfs.h index 93c3cd220506..279a836594e7 100644 --- a/net/sunrpc/sysfs.h +++ b/net/sunrpc/sysfs.h @@ -5,9 +5,17 @@ #ifndef __SUNRPC_SYSFS_H #define __SUNRPC_SYSFS_H +struct rpc_netns_client { + struct kobject kobject; + struct net *net; +}; + extern struct kobject *rpc_client_kobj; extern int rpc_sysfs_init(void); extern void rpc_sysfs_exit(void); +void rpc_netns_sysfs_setup(struct rpc_clnt *clnt, struct net *net); +void rpc_netns_sysfs_destroy(struct rpc_clnt *clnt); + #endif From patchwork Mon Jan 11 21:41:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12011699 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3489AC4332B for ; Mon, 11 Jan 2021 21:43:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E8F3F22AED for ; Mon, 11 Jan 2021 21:43:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387621AbhAKVnH (ORCPT ); Mon, 11 Jan 2021 16:43:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46458 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387864AbhAKVnG (ORCPT ); Mon, 11 Jan 2021 16:43:06 -0500 Received: from mail-io1-xd2c.google.com (mail-io1-xd2c.google.com [IPv6:2607:f8b0:4864:20::d2c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 28A93C0617A3 for ; Mon, 11 Jan 2021 13:41:51 -0800 (PST) Received: by mail-io1-xd2c.google.com with SMTP id y19so95345iov.2 for ; Mon, 11 Jan 2021 13:41:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bNu8WUHkgCExXTRUQefb0Olb+YUVP8ZChf3nHMznEj4=; b=JX3bPo2OZz8Y5XbZ22cEob2HRUYaprcQIVGsuQIKCi87xFu+VVXruwReXpQqc1Kfwf IATPqI46KmcqHh4feqW4wepHvtD+jN7YEk3mzVGodcoXiyfmhXXNDxnT97xc/DJDwZ9R RhktBxTZig8lcZowCcBV8FBJhM2TDtKwgGNwU9t7t7s/uhdF5kRx1bajMR4SG2eBxmxt Cgr+gnPjr7hilrWbCQPKFz4soYLKUjToSduka3er8nz6N0mYFeIm5h5h41Po87oNCDmU dwbu/SPk3Nq+9fObn7UzVaQSSsGIneGXhAN+VtWOMKavwVBi8fLlTMS22aYhZE1UWcZQ VuNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=bNu8WUHkgCExXTRUQefb0Olb+YUVP8ZChf3nHMznEj4=; b=UclsLrAV7NmZMtc6EfkwyQZnVx6397DdQTe5ag3FPliJj+ovvoL+UQ44xmuAlME4Oq qBYxiZQPiu1RmXfxnWnuUkjXhtHwvJtCeRnCIQ0Rf5U1tvFG+mv9Uf0D9DK/58uqzDPX Os+0n3WBwmSQbGku/9wVjndl7vw0wM9g0yIhIfD/WgfNguNwTDddW/g3QKqteO5JvLwI S+XGiDmk701J4GFiY/O2KNAPvsSEBAhq9tqdbwBo1iTsbfe2DeFTU5JMkphyxK86kU0m umh5Mm8WJFwrDJzCOCdhgdfEwvtafLoq4XpmXzA7G+Zms0aGaFDb0EaigNJA85UHEQdr Bb5w== X-Gm-Message-State: AOAM53131giIX+TWtOzR1OtusLmjceupULFRts0HoQy3Ce1gGZ2bOngD nP2ULa1SmzngnP5syz/5XOm3AVCLGSqyJg== X-Google-Smtp-Source: ABdhPJw/xxss9W1+wQhuj14BElzPZeXj2sqSSUJWaP2ZK7YNvbyew0SZn8SYWhpVp94G+ZyYvpK6+w== X-Received: by 2002:a5e:de08:: with SMTP id e8mr944325iok.203.1610401310289; Mon, 11 Jan 2021 13:41:50 -0800 (PST) Received: from gouda.nowheycreamery.com (c-68-32-74-190.hsd1.mi.comcast.net. [68.32.74.190]) by smtp.gmail.com with ESMTPSA id 143sm681712ila.4.2021.01.11.13.41.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Jan 2021 13:41:49 -0800 (PST) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [RFC PATCH 5/7] sunrpc: Create a per-rpc_clnt file for managing the IP address Date: Mon, 11 Jan 2021 16:41:41 -0500 Message-Id: <20210111214143.553479-6-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210111214143.553479-1-Anna.Schumaker@Netapp.com> References: <20210111214143.553479-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker And since we're using IP here, restrict to only creating sysfs files for TCP and RDMA connections. Signed-off-by: Anna Schumaker --- net/sunrpc/sysfs.c | 32 ++++++++++++++++++++++++++++++++ net/sunrpc/sysfs.h | 1 + 2 files changed, 33 insertions(+) diff --git a/net/sunrpc/sysfs.c b/net/sunrpc/sysfs.c index dd298b9c13e8..537d83635670 100644 --- a/net/sunrpc/sysfs.c +++ b/net/sunrpc/sysfs.c @@ -3,6 +3,7 @@ * Copyright (c) 2020 Anna Schumaker */ #include +#include #include #include "sysfs.h" @@ -55,6 +56,23 @@ int rpc_sysfs_init(void) return 0; } +static ssize_t rpc_netns_address_show(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +{ + struct rpc_netns_client *c = container_of(kobj, + struct rpc_netns_client, kobject); + struct rpc_clnt *clnt = c->clnt; + struct rpc_xprt *xprt = rcu_dereference(clnt->cl_xprt); + + return rpc_ntop((struct sockaddr *)&xprt->addr, buf, PAGE_SIZE); +} + +static ssize_t rpc_netns_address_store(struct kobject *kobj, + struct kobj_attribute *attr, const char *buf, size_t count) +{ + return count; +} + static void rpc_netns_client_release(struct kobject *kobj) { struct rpc_netns_client *c; @@ -68,8 +86,17 @@ static const void *rpc_netns_client_namespace(struct kobject *kobj) return container_of(kobj, struct rpc_netns_client, kobject)->net; } +static struct kobj_attribute rpc_netns_client_address = __ATTR(address, + 0644, rpc_netns_address_show, rpc_netns_address_store); + +static struct attribute *rpc_netns_client_attrs[] = { + &rpc_netns_client_address.attr, + NULL, +}; + static struct kobj_type rpc_netns_client_type = { .release = rpc_netns_client_release, + .default_attrs = rpc_netns_client_attrs, .sysfs_ops = &kobj_sysfs_ops, .namespace = rpc_netns_client_namespace, }; @@ -100,10 +127,15 @@ static struct rpc_netns_client *rpc_netns_client_alloc(struct kobject *parent, void rpc_netns_sysfs_setup(struct rpc_clnt *clnt, struct net *net) { struct rpc_netns_client *rpc_client; + struct rpc_xprt *xprt = rcu_dereference(clnt->cl_xprt); + + if (!(xprt->prot & (IPPROTO_TCP | XPRT_TRANSPORT_RDMA))) + return; rpc_client = rpc_netns_client_alloc(rpc_client_kobj, net, clnt->cl_clid); if (rpc_client) { clnt->cl_sysfs = rpc_client; + rpc_client->clnt = clnt; kobject_uevent(&rpc_client->kobject, KOBJ_ADD); } } diff --git a/net/sunrpc/sysfs.h b/net/sunrpc/sysfs.h index 279a836594e7..137a12c87954 100644 --- a/net/sunrpc/sysfs.h +++ b/net/sunrpc/sysfs.h @@ -8,6 +8,7 @@ struct rpc_netns_client { struct kobject kobject; struct net *net; + struct rpc_clnt *clnt; }; extern struct kobject *rpc_client_kobj; From patchwork Mon Jan 11 21:41:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12011697 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 49F11C433E9 for ; Mon, 11 Jan 2021 21:43:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 144A122C7E for ; Mon, 11 Jan 2021 21:43:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387864AbhAKVnH (ORCPT ); Mon, 11 Jan 2021 16:43:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46460 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387911AbhAKVnG (ORCPT ); Mon, 11 Jan 2021 16:43:06 -0500 Received: from mail-il1-x12a.google.com (mail-il1-x12a.google.com [IPv6:2607:f8b0:4864:20::12a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2EB9BC0617A4 for ; Mon, 11 Jan 2021 13:41:52 -0800 (PST) Received: by mail-il1-x12a.google.com with SMTP id q1so751667ilt.6 for ; Mon, 11 Jan 2021 13:41:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SW9sK2N6g/Ta8eXWJeE/yuBYQzAt4OFHO0Wdl6GzXf4=; b=mM+mGeRyR0v8qN9T0jGRoCgAsb+iyvtD5nGj8K0ZtqGxLtftwCfIOblOCqTHCN0eH0 bIWTrs1x+wURSt7pgykAFjL+7zO0YQj46V+VoX65KGAnxHBASEuy5zh08Y/73alfq8gn +KFAPSppVcpVUZiMoGSktgc+y/g3nM+U1wmo1JT4MsBgQUPI111bJuhWCX2rB6LwKXjw 87kOQ9XLi9ULOSQLFtPdoBbDZxOSCpl6nipj/32nTZbmvcFNR6pSlB1aQFZf8W/TWxA8 raie9/lPBBrHMU9OtZtDx3T9j0WhUj9qiySpstS6I+RR5TNjVsnTDpaBm36yC5dgfDnW PHvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=SW9sK2N6g/Ta8eXWJeE/yuBYQzAt4OFHO0Wdl6GzXf4=; b=hMdkEMV0W4JrhKIRK0vDfk583aZvAxnzyWwo02luvmKQjXoIcF6VzQGZbDT86rOTk1 aTLvefybpEHPWXh4irEzS334P7xlD1LxVHh+QCHV8JDvSd36b0+VIjeBsOBGIObmK7jX QvY0l6YJWMiofCS56M/7QdouWlw77+cNbMktvpEcoFLVoebxaVeuO8FPl5n7u335lMMm bBeYf9xHvMh1wG/ZIcgMHuUdOQZVx/4yL8eezNWsqCvBGGpOaOUO2RiYgUwxYdz8Xa+3 vwtsgG/hbToEBgheGZD0pK4Jnnr+Y2zeWDYDQf6GZ6YJ0KbWZxVhq7LeY1pYqx+aWRw7 at4Q== X-Gm-Message-State: AOAM5320Q+JyaFuoEmh43BvdIXlOwaopoFqGpMyFK0+OzDx+uquKyYYF 8/PhEFS1TqHUWLHueTK0SRue/rfgYzZg6g== X-Google-Smtp-Source: ABdhPJx4B3GwY1vCSYOQKdbSCqHfqjBk9UO4lZahOysQAiYckk6InhPku3p2B/yPj31b1zgIhNGUHg== X-Received: by 2002:a05:6e02:cc7:: with SMTP id c7mr1089336ilj.218.1610401311360; Mon, 11 Jan 2021 13:41:51 -0800 (PST) Received: from gouda.nowheycreamery.com (c-68-32-74-190.hsd1.mi.comcast.net. [68.32.74.190]) by smtp.gmail.com with ESMTPSA id 143sm681712ila.4.2021.01.11.13.41.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Jan 2021 13:41:50 -0800 (PST) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [RFC PATCH 6/7] sunrpc: Prepare xs_connect() for taking NULL tasks Date: Mon, 11 Jan 2021 16:41:42 -0500 Message-Id: <20210111214143.553479-7-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210111214143.553479-1-Anna.Schumaker@Netapp.com> References: <20210111214143.553479-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker We won't have a task structure when we go to change IP addresses, so check for one before calling the WARN_ON() to avoid crashing. Signed-off-by: Anna Schumaker --- net/sunrpc/xprtsock.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index c56a66cdf4ac..250abf1aa018 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c @@ -2311,7 +2311,8 @@ static void xs_connect(struct rpc_xprt *xprt, struct rpc_task *task) struct sock_xprt *transport = container_of(xprt, struct sock_xprt, xprt); unsigned long delay = 0; - WARN_ON_ONCE(!xprt_lock_connect(xprt, task, transport)); + if (task) + WARN_ON_ONCE(!xprt_lock_connect(xprt, task, transport)); if (transport->sock != NULL) { dprintk("RPC: xs_connect delayed xprt %p for %lu " From patchwork Mon Jan 11 21:41:43 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anna Schumaker X-Patchwork-Id: 12011701 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5F591C4332D for ; Mon, 11 Jan 2021 21:43:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 36BAF22BED for ; Mon, 11 Jan 2021 21:43:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387911AbhAKVnI (ORCPT ); Mon, 11 Jan 2021 16:43:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46466 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388032AbhAKVnH (ORCPT ); Mon, 11 Jan 2021 16:43:07 -0500 Received: from mail-il1-x12d.google.com (mail-il1-x12d.google.com [IPv6:2607:f8b0:4864:20::12d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2DD47C0617A5 for ; Mon, 11 Jan 2021 13:41:53 -0800 (PST) Received: by mail-il1-x12d.google.com with SMTP id y13so716092ilm.12 for ; Mon, 11 Jan 2021 13:41:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2lwSYtzRiaoTDkNyVvPYOL0d/MoaKnDuy9kjU6EPUtA=; b=bbk1r9mvRdg9Au2K5JE05aYYqY+CLpPZCOHl0b473nOvUR7dGhXMNJOlehAcayJgP3 Wt4IgrmfxQaMqmBcMEFv5/ZBQLaq8VfgUow371bF6dp27HVTlB+KjPv8lbX7fXZuAz6X 37jZ5vrW022KEPKW8S5U+o9WSLzI+rRd69gTj4AmBXBjmSzqRG1PHDNE++BvGjaRMWKA FK55OiJ4cn7oM9jweh5BZ/TUjdte1txCnp10o0eXsoGbqxlFeDorXiJknBl9tIESroC4 V0nu4F0exFSpYT7KXsWP9v1iaAZuMFTyQr84xDmaevf1/6BbkBKy8zzF/RGt1Te9+ohB lOqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=2lwSYtzRiaoTDkNyVvPYOL0d/MoaKnDuy9kjU6EPUtA=; b=e3+/UiNO91k8TAF/1RZJNnO9nhIrZGFb0oAzbbgKgFCSYxZKtoPuLN8f1v/Aixs/nH +QqNbdQo12qzd6MRrDoO/TRM9W8wY3HeWmr8Pbm6QUc75/hm1kQVt9a9GhauDr1I9KoC WRzhLxw5Jm3rOdw0nj3kY2w+iPlzHzBVWDxFBze6D4GJxhQNLhxqXPQs1pSXdEBsh9UV wh/bP3pMaiVt35dYigsUaAp5Uc8aRRCo9G9OVmIm09DH4WV8kfL7xf3OXCnMAjWt5HGh G8QGEybvPxCR16C5FlExrFxkxbS2o9ag9Y+SqPMDsBtOu5GxZoc0h39vNvyWEXlPwwjP ua/g== X-Gm-Message-State: AOAM531zD25zBRlfUJRul+2IkNMwM+J+wy0fzpm7/kXhfCO2Woyu3YX7 NsVilNJdhvyXK5IuHCD4ax3t3VoQj6VXjQ== X-Google-Smtp-Source: ABdhPJwjhFG2Sylmy40mCGV4UV5Cv7x6nkJCAgX2lFy5tl9oAOXEbm/NRliSBbLWa8vxcmT4UM2uwA== X-Received: by 2002:a92:d44e:: with SMTP id r14mr1034188ilm.299.1610401312393; Mon, 11 Jan 2021 13:41:52 -0800 (PST) Received: from gouda.nowheycreamery.com (c-68-32-74-190.hsd1.mi.comcast.net. [68.32.74.190]) by smtp.gmail.com with ESMTPSA id 143sm681712ila.4.2021.01.11.13.41.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Jan 2021 13:41:51 -0800 (PST) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [RFC PATCH 7/7] sunrpc: Connect to a new IP address provided by the user Date: Mon, 11 Jan 2021 16:41:43 -0500 Message-Id: <20210111214143.553479-8-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210111214143.553479-1-Anna.Schumaker@Netapp.com> References: <20210111214143.553479-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker We preserve the same port number, rather than providing a way to change it. This keeps the implementation simpler for now. Signed-off-by: Anna Schumaker --- net/sunrpc/sysfs.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/net/sunrpc/sysfs.c b/net/sunrpc/sysfs.c index 537d83635670..47a7c9b8b143 100644 --- a/net/sunrpc/sysfs.c +++ b/net/sunrpc/sysfs.c @@ -70,6 +70,13 @@ static ssize_t rpc_netns_address_show(struct kobject *kobj, static ssize_t rpc_netns_address_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count) { + struct rpc_netns_client *c = container_of(kobj, + struct rpc_netns_client, kobject); + struct rpc_clnt *clnt = c->clnt; + struct rpc_xprt *xprt = rcu_dereference(clnt->cl_xprt); + struct sockaddr *saddr = (struct sockaddr *)&xprt->addr; + + xprt->addrlen = rpc_pton(xprt->xprt_net, buf, count - 1, saddr, sizeof(*saddr)); return count; }