Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp2974572iog; Mon, 20 Jun 2022 08:34:37 -0700 (PDT) X-Google-Smtp-Source: AGRyM1u/gKiLNujhhUSd65/Tos/IHhXTDngkdlqOe4krampK6SfwIVy5S6i9kcs/8mXszml56M35 X-Received: by 2002:a05:6a00:23c4:b0:51c:5e8:e8a9 with SMTP id g4-20020a056a0023c400b0051c05e8e8a9mr24927072pfc.62.1655739277702; Mon, 20 Jun 2022 08:34:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655739277; cv=none; d=google.com; s=arc-20160816; b=khRHO2hlP2tOQDqgYW0VknlGoFDWDbCECqsHKm9DRVY20wvzgTHzbEDaX/HM7Ir/P2 BzZkcqjaHg4+UimmtSk9nAIWRTRj5RqbhKf0m8tKA0cuN4dhwBIJERCZlF6LlIsFnP2v BH7/4Ye0p2ImeD+NujJ4sKwGqSAcNZoVeoga8DdXvRxid2+MsbnHq1+qfziIK0OfgReL kArpw0SFGKqSc9B+kglIvVb4UzBXeZSt18UpMBB6dPZv/4ps7jLPAOOS3UwFARV21JrW LB1JGdQC6eNiAfwVaqqYTJr5KdKwm+mirRcK1xDZ8SVgzNuKAXFIjNco3bHHcGN8HfRi 7szA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=9z+0e7yosXzWMC+4/4RMnDuuYwdZfKSVj1pN/L3s6OM=; b=GcVWLOHe+DJ+Zx/NWOhba3xMABNNiEIgNzN+C5BbCd0GefLwVv4/MSq9SKdINhiGAO a8+EpwyLbIO9Rw38bDuso6KctfbiKgWMq0wcoAxHNmvzvtancQN6SG4zwpYOx7JNNbjs DkhdVa8hxvOm8EkWo3iMsA0/WNstWKeugFEv6xHr4zsEmIzxNJzQfasJQmYUk02ps2aa 8zrkyO0NDvw/17jKc5v0jWnbB6nWNnqln5gkENFliT6FhVYdHZZfES1bQQ08+l5Fcrdy KmfthPIYP+g/BhGVlzQoruujrKwR+Jk+6tdlVxy4GhJ3CMoG2Ptr2RjijcHs0FPvjQ6j tSLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=D97xbiqE; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m9-20020a1709026bc900b001617b60e734si16097654plt.139.2022.06.20.08.33.52; Mon, 20 Jun 2022 08:34:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=D97xbiqE; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244268AbiFTPZy (ORCPT + 99 others); Mon, 20 Jun 2022 11:25:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53226 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244572AbiFTPZT (ORCPT ); Mon, 20 Jun 2022 11:25:19 -0400 Received: from mail-qv1-xf33.google.com (mail-qv1-xf33.google.com [IPv6:2607:f8b0:4864:20::f33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 68279C42 for ; Mon, 20 Jun 2022 08:24:31 -0700 (PDT) Received: by mail-qv1-xf33.google.com with SMTP id cu16so15742944qvb.7 for ; Mon, 20 Jun 2022 08:24:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=9z+0e7yosXzWMC+4/4RMnDuuYwdZfKSVj1pN/L3s6OM=; b=D97xbiqEIOII6XDRj5bUwamGkcQ29KohjWa7AiApAmoGP7fVr6cPFTq5w8k2+qiDfC iKmXS1+ogKcAIciTsl4xCtk1IkcamPhObXQcRzEFUL/fz9eukqFl0lzoJRMPm9nIOJ9S 9Un+kXbfKVMY+rIUTen3nIH1rntxgeVtEqYH5rWtlvom1H7IPr6JMdM+u6/ihQVMt6FS Vh114QcWMSTdHFzJh84noPxznBdch07wtuuROZEU8bv7s7N6qaaqbXaWcvngLNtFQ0RZ S1RXIYT2ysteTwazjowfiFvtAmEa00XJNNxZjc3DAyxNMmFVJU91uupvCn6PfHlN6AXT Xw6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=9z+0e7yosXzWMC+4/4RMnDuuYwdZfKSVj1pN/L3s6OM=; b=Cm2969NDOYwva5Vf+5lyh2BkseN11wMJJH0d2BHVJ96K5/MdYrTsdws69w1ZtyyyLP u0+YnJHY+an5iD6ADu6Rq9xQomthT7EUBELo+OFtE3Y9c3jlPI9XpmRYa6KyN+K1FosV RQ1Lgu2qd0WL+IabfQK/qanrafVuWhQ0woqH+tAeJbhDG65N0JH8WsLmCkGnhwNPg6EV Bd3/ycUpY4WETWJ+7WXyjWsdc13bivl2ibnjTguCm4M/wbgJDsNW3AOHjg2HGmud9aXO E3OgSkQ3X8EQw3c4RxJSlAy05kZsxayhnGmZqVvXt3jxNQrcY7hO/WFgKiPzeQ+Z8zDU mv+w== X-Gm-Message-State: AJIora8Z66ihD+f/57+S9GtzcieM/+wNyHcQ3CVTQ2zy9KPbjJk4IBoY wO1Ma9N8oWXu3MFXg9aiQ96yIvThA9tnBw== X-Received: by 2002:ac8:570c:0:b0:304:e52c:3c2f with SMTP id 12-20020ac8570c000000b00304e52c3c2fmr20316798qtw.8.1655738670525; Mon, 20 Jun 2022 08:24:30 -0700 (PDT) Received: from kolga-mac-1.attlocal.net ([2600:1700:6a10:2e90:48cb:6eb8:1da1:a5c0]) by smtp.gmail.com with ESMTPSA id g10-20020a05620a40ca00b006a791a42693sm12517862qko.133.2022.06.20.08.24.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jun 2022 08:24:29 -0700 (PDT) From: Olga Kornievskaia To: trond.myklebust@hammerspace.com, anna.schumaker@netapp.com Cc: linux-nfs@vger.kernel.org Subject: [PATCH v1 00/12] Handling session trunking group membership Date: Mon, 20 Jun 2022 11:23:55 -0400 Message-Id: <20220620152407.63127-1-olga.kornievskaia@gmail.com> X-Mailer: git-send-email 2.30.1 (Apple Git-130) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Olga Kornievskaia Client needs to handle session trunking group membership changes that occur when a particular server leaves an established trunked group. This results in a server sending a NFS4ERR_BAD_SESSION because that server no longer has session's state. This series proposes to deal with that situation in two fold. First on DESTROY_SESSION, the client will offline all trunked connections it has established to the server. Then on CREATE_SESSION it will iterate thru offlined connections only and probe them again for session trunking. If session trunking conditions still hold then such transport would be made active again otherwise it will be deleted from the trunked group. Olga Kornievskaia (12): SUNRPC expose functions for offline remote xprt functionality SUNRPC add function to offline remove trunkable transports NFSv4.1 offline trunkable transports on DESTROY_SESSION SUNRPC create an iterator to list only OFFLINE xprts SUNRPC parameterize rpc_clnt_iterate_for_each_xprt with iterator init function SUNRPC enable back offline transports in trunking discovery SUNRPC create an rpc function that allows xprt removal from rpc_clnt NFSv4.1 remove xprt from xprt_switch if session trunking test fails SUNRPC restructure rpc_clnt_setup_test_and_add_xprt SUNRPC export xprt_iter_rewind function SUNRPC create a function that probes only offline transports NFSv4.1 probe offline transports for trunking on session creation fs/nfs/nfs4proc.c | 18 ++- include/linux/sunrpc/clnt.h | 7 +- include/linux/sunrpc/xprt.h | 3 + include/linux/sunrpc/xprtmultipath.h | 7 +- net/sunrpc/clnt.c | 204 ++++++++++++++++++++++----- net/sunrpc/debugfs.c | 3 +- net/sunrpc/stats.c | 2 +- net/sunrpc/sysfs.c | 28 +--- net/sunrpc/xprt.c | 35 +++++ net/sunrpc/xprtmultipath.c | 109 +++++++++++--- 10 files changed, 338 insertions(+), 78 deletions(-) -- 2.27.0