From patchwork Mon Mar 6 14:29:14 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kinglong Mee X-Patchwork-Id: 9606669 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 528D86046A for ; Mon, 6 Mar 2017 14:33:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4671026490 for ; Mon, 6 Mar 2017 14:33:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3B29526907; Mon, 6 Mar 2017 14:33:23 +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.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, 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 B18E827F54 for ; Mon, 6 Mar 2017 14:33:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754685AbdCFOdR (ORCPT ); Mon, 6 Mar 2017 09:33:17 -0500 Received: from mail-it0-f66.google.com ([209.85.214.66]:34282 "EHLO mail-it0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754258AbdCFO3r (ORCPT ); Mon, 6 Mar 2017 09:29:47 -0500 Received: by mail-it0-f66.google.com with SMTP id r141so9695211ita.1 for ; Mon, 06 Mar 2017 06:29:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:references:to:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=WUcAZXmkNRRCa+vFYW98gGeGuVDNP+C1UHqZHOWcyOM=; b=N68xQd7+cA8ACRiKB0+BQchkX9vbF/M7JM4jPth0L1C3jkrYJZp3ACWwNUgwHmmYLv TyIiNhRfrVPZUDX6dIgQeuvU26gqtbzKyN0RC+ojMWVHtCOK69T7s+UnF/2NOn5mw+Ti GCUZxaU9MxXh3fMIOE/C41iwGCc4HBdYBMBCIS/lenTm+yEpW5POjivkTGCCRXh1LaO8 tVJUzLFByv4jhFKkahgg1KA9XbzRqM9EglGHTNhzfckVRBuGAsN10jH/PfCkzCF/VYU9 /14hn4E/8YEnkpxaVe/qC4c3EPYoyVjko5dnp8ux/nUNBTAxgnFtZY8798oFLbgtYtn2 LnLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:references:to:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=WUcAZXmkNRRCa+vFYW98gGeGuVDNP+C1UHqZHOWcyOM=; b=VExG+UDjB+Du+XBMt9Xp6bVwI1DqHnx7T1LxBDWEGT1FQbaK//dVAKAvlXvMStn7wT TnSPn5Nn0yW1aAKNfqSU32oTtdYS1sVaVxcFDIOEHJCY4f7NEF+E7oM3YD1IAQ22lEVA dyw4BDdd+PA1QyXcpmrM4SCABB848AKuXxBp6cJSS0EY1qBe75JMABESRjcIGWk9WJcP nB/BLg5la4OmYoJQxA///mdVNXuuFnXnic9jdDQ8ae+Xf474GzhDhvluvN9oWaOvbWIG TzgTkn9ANL1zZ1l5jOG8irHURXFmQmEbx9fqCRljppzvM9NF65sa2smfcFfipyT6zO9j +xTg== X-Gm-Message-State: AMke39nb1+ns/wGFxp1oYPHc9Y0gWRA4WOqBxtIGjH6Q+NfqWo1iTMiVw5PQjGptcAMdDA== X-Received: by 10.36.77.140 with SMTP id l134mr15823127itb.33.1488810561667; Mon, 06 Mar 2017 06:29:21 -0800 (PST) Received: from [192.168.0.107] ([183.228.28.90]) by smtp.gmail.com with ESMTPSA id l198sm4957524ita.10.2017.03.06.06.29.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Mar 2017 06:29:21 -0800 (PST) Subject: [PATCH] NFSv4: fix a reference leak caused WARNING messages References: <854569e6-d545-ec2f-ca32-d65b50c1d603@gmail.com> To: Trond Myklebust , "linux-nfs@vger.kernel.org" Cc: Anna Schumaker , Kinglong Mee From: Kinglong Mee X-Forwarded-Message-Id: <854569e6-d545-ec2f-ca32-d65b50c1d603@gmail.com> Message-ID: <87885798-493b-0d5a-b64e-f01e927ddeeb@gmail.com> Date: Mon, 6 Mar 2017 22:29:14 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: <854569e6-d545-ec2f-ca32-d65b50c1d603@gmail.com> 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 Because nfs4_opendata_access() has close the state when access is denied, so the state isn't leak. Rather than revert the commit a974deee47, I'd like clean the strange state close. [ 1615.094218] ------------[ cut here ]------------ [ 1615.094607] WARNING: CPU: 0 PID: 23702 at lib/list_debug.c:31 __list_add_valid+0x8e/0xa0 [ 1615.094913] list_add double add: new=ffff9d7901d9f608, prev=ffff9d7901d9f608, next=ffff9d7901ee8dd0. [ 1615.095458] Modules linked in: nfsv4(E) nfs(E) nfsd(E) tun bridge stp llc fuse ip_set nfnetlink vmw_vsock_vmci_transport vsock f2fs snd_seq_midi snd_seq_midi_event fscrypto coretemp ppdev crct10dif_pclmul crc32_pclmul ghash_clmulni_intel intel_rapl_perf vmw_balloon snd_ens1371 joydev gameport snd_ac97_codec ac97_bus snd_seq snd_pcm snd_rawmidi snd_timer snd_seq_device snd soundcore nfit parport_pc parport acpi_cpufreq tpm_tis tpm_tis_core tpm i2c_piix4 vmw_vmci shpchp auth_rpcgss nfs_acl lockd(E) grace sunrpc(E) xfs libcrc32c vmwgfx drm_kms_helper ttm drm crc32c_intel mptspi e1000 serio_raw scsi_transport_spi mptscsih mptbase ata_generic pata_acpi fjes [last unloaded: nfs] [ 1615.097663] CPU: 0 PID: 23702 Comm: fstest Tainted: G W E 4.11.0-rc1+ #517 [ 1615.098015] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/02/2015 [ 1615.098807] Call Trace: [ 1615.099183] dump_stack+0x63/0x86 [ 1615.099578] __warn+0xcb/0xf0 [ 1615.099967] warn_slowpath_fmt+0x5f/0x80 [ 1615.100370] __list_add_valid+0x8e/0xa0 [ 1615.100760] nfs4_put_state_owner+0x75/0xc0 [nfsv4] [ 1615.101136] __nfs4_close+0x109/0x140 [nfsv4] [ 1615.101524] nfs4_close_state+0x15/0x20 [nfsv4] [ 1615.101949] nfs4_close_context+0x21/0x30 [nfsv4] [ 1615.102691] __put_nfs_open_context+0xb8/0x110 [nfs] [ 1615.103155] put_nfs_open_context+0x10/0x20 [nfs] [ 1615.103586] nfs4_file_open+0x13b/0x260 [nfsv4] [ 1615.103978] do_dentry_open+0x20a/0x2f0 [ 1615.104369] ? nfs4_copy_file_range+0x30/0x30 [nfsv4] [ 1615.104739] vfs_open+0x4c/0x70 [ 1615.105106] ? may_open+0x5a/0x100 [ 1615.105469] path_openat+0x623/0x1420 [ 1615.105823] do_filp_open+0x91/0x100 [ 1615.106174] ? __alloc_fd+0x3f/0x170 [ 1615.106568] do_sys_open+0x130/0x220 [ 1615.106920] ? __put_cred+0x3d/0x50 [ 1615.107256] SyS_open+0x1e/0x20 [ 1615.107588] entry_SYSCALL_64_fastpath+0x1a/0xa9 [ 1615.107922] RIP: 0033:0x7fab599069b0 [ 1615.108247] RSP: 002b:00007ffcf0600d78 EFLAGS: 00000246 ORIG_RAX: 0000000000000002 [ 1615.108575] RAX: ffffffffffffffda RBX: 00007fab59bcfae0 RCX: 00007fab599069b0 [ 1615.108896] RDX: 0000000000000200 RSI: 0000000000000200 RDI: 00007ffcf060255e [ 1615.109211] RBP: 0000000000040010 R08: 0000000000000000 R09: 0000000000000016 [ 1615.109515] R10: 00000000000006a1 R11: 0000000000000246 R12: 0000000000041000 [ 1615.109806] R13: 0000000000040010 R14: 0000000000001000 R15: 0000000000002710 [ 1615.110152] ---[ end trace 96ed63b1306bf2f3 ]--- Fixes: a974deee47 ("NFSv4: Fix memory and state leak in...") Signed-off-by: Kinglong Mee --- fs/nfs/nfs4proc.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 1b18368..c1f5369 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -2258,8 +2258,6 @@ static int nfs4_opendata_access(struct rpc_cred *cred, if ((mask & ~cache.mask & (MAY_READ | MAY_EXEC)) == 0) return 0; - /* even though OPEN succeeded, access is denied. Close the file */ - nfs4_close_state(state, fmode); return -EACCES; }