From patchwork Mon Jan 16 00:23:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kinglong Mee X-Patchwork-Id: 9517975 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 848596020B for ; Mon, 16 Jan 2017 00:23:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4714228488 for ; Mon, 16 Jan 2017 00:23:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 27CC52849A; Mon, 16 Jan 2017 00:23:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E6E8C28488 for ; Mon, 16 Jan 2017 00:23:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751281AbdAPAXu (ORCPT ); Sun, 15 Jan 2017 19:23:50 -0500 Received: from mail-pf0-f194.google.com ([209.85.192.194]:34213 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751122AbdAPAXt (ORCPT ); Sun, 15 Jan 2017 19:23:49 -0500 Received: by mail-pf0-f194.google.com with SMTP id y143so12937512pfb.1 for ; Sun, 15 Jan 2017 16:23:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:cc:message-id:date:user-agent:mime-version :content-transfer-encoding; bh=sHtIRX7G2KKJP8/PB+ImpT8UACelu7cvr3/y8FTwbG8=; b=O+5U1RrfksVurlhvn2ove7hdUwyjc3FxOXERkVyAtUDdW0TqyU8rfSI2PsKofcSqHr cycw62UklEmtwH4NKie8fM7Uv7ERbwqdZpv1wI77Ab5+uDOdlMvduDFwi0ZkQXXu2hSs gPVnOdVo2g5QQuwErrQNiTCAoJ/GOGPHxqwnCOFz1qNx5+SEsYpTLnl1wTWArw3IYuku uRGRKfm7Z0T8Z7Yv1UJ9jDGRx2jQjZnL4xSmRFGmNOHrtldWbP4RatnkQUD1wnEc7fYK hogfp1HmccLo7VFWf/mBOt2vERQVgdIVh+pmj0oL0iELocJM15HoI42842LxkNBhT2Fq +Btw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:cc:message-id:date:user-agent :mime-version:content-transfer-encoding; bh=sHtIRX7G2KKJP8/PB+ImpT8UACelu7cvr3/y8FTwbG8=; b=eGXU5uumZgFsVRyq3tOnwL7afS4Ox9kbwqRPiKo9CK+S4qfI1uw17mHjo9c5UPDsUw JRh+xicoINPHWQkqOHM5uMRmoxVWYxu0o6D7Ze5M2FdnffMW3q5OLqUo6NjA+g1CwzvT D2jJYdFk3mYLLM8vAHiS21RhRNX/nFzrtpWm/r3/1Tyb4PTmy4+ok1YdMN6KS4q5SO0M pATWPxB6m78dbhFZTWFPcpdkVu6psuHg2W0ubM6+PI4Ayq4NgE9yS6gBjb36OO3UCVJB QhAMWsIMu2Cg09wo+kT4G6cjhYBIYOF2T1nnlMzrbd6cBttO4/mp8+z/fsaVOxicBvYu e0wg== X-Gm-Message-State: AIkVDXJnKXMQkGR9PXdKP4RGxjnZ85D6reNQC3KBNbhfnlmPXv2UAMckf9PQX9dkeH0nxQ== X-Received: by 10.84.232.70 with SMTP id f6mr45706039pln.113.1484526229225; Sun, 15 Jan 2017 16:23:49 -0800 (PST) Received: from [192.168.0.107] ([183.228.31.206]) by smtp.googlemail.com with ESMTPSA id q7sm42974767pgn.20.2017.01.15.16.23.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 15 Jan 2017 16:23:48 -0800 (PST) From: Kinglong Mee Subject: [PATCH] SUNRPC: Make sure authorize svc when meeting SVC_CLOSE To: "J. Bruce Fields" , linux-nfs@vger.kernel.org Cc: Chuck Lever , Kinglong Mee Message-ID: <090f6673-1bb3-d626-e27e-6be5afcda782@gmail.com> Date: Mon, 16 Jan 2017 08:23:37 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Commit 4d712ef1db05 "svcauth_gss: Close connection when dropping an incoming message" will close connection, but forget authorizing the svc when meeting SVC_CLOSE. That, there will be an module reference to sunrpc, and some memory leak. When mounting an nfs filesystem, the reference leak increase one. Signed-off-by: Kinglong Mee --- net/sunrpc/svc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c index 75f290b..63ca2ea 100644 --- a/net/sunrpc/svc.c +++ b/net/sunrpc/svc.c @@ -1155,6 +1155,11 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv) case SVC_DENIED: goto err_bad_auth; case SVC_CLOSE: + /* + * Makesure authorise svc if progp->pg_authenticate fail, + * it's harmless if svc_authenticate fail. + */ + svc_authorise(rqstp); goto close; case SVC_DROP: goto dropit;