From patchwork Tue Aug 5 13:20:27 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kinglong Mee X-Patchwork-Id: 4678961 Return-Path: X-Original-To: patchwork-linux-nfs@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 88F17C0338 for ; Tue, 5 Aug 2014 13:20:47 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 5882820172 for ; Tue, 5 Aug 2014 13:20:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 202972014A for ; Tue, 5 Aug 2014 13:20:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753530AbaHENUo (ORCPT ); Tue, 5 Aug 2014 09:20:44 -0400 Received: from mail-pa0-f41.google.com ([209.85.220.41]:62515 "EHLO mail-pa0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753216AbaHENUn (ORCPT ); Tue, 5 Aug 2014 09:20:43 -0400 Received: by mail-pa0-f41.google.com with SMTP id rd3so1419408pab.28 for ; Tue, 05 Aug 2014 06:20:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :content-type:content-transfer-encoding; bh=YiP1EpBX6hs3GhLOCFM12kYbs3pZDIRjJ3ZzVKAnwX4=; b=Ek6kXg2B6+p/2eFmZUVzEBcAM8ZCGnoe/Zq8k4KcGMEpV+dT59+GQQKTUhSdHsu6N3 2j0W+axyzIbSL6RmXB9dw795oIIupi6hhfGSeElyC3gbucopnJHAEjVRtdJSTZ/w5sv1 IcOMlehwMlK+Gv3zxZFBY0D3YNKejdfVcr+iVZTUe297JS7cKj6APq1WRkXYXVJBUFLS FZc9fGl+TzxshjEKp1hjCLm2u3l+D4Yto7rWXAtTjtziQ4WjE4DqdWIa0T48zt/racOu NQeg2k03lq07dw1TpRR8ZKEc3q0qyKuWDcXf+P9YUrb5I4EHFIJBOLMYzGqAy8No+tck 8jhQ== X-Received: by 10.68.223.202 with SMTP id qw10mr2513937pbc.163.1407244842667; Tue, 05 Aug 2014 06:20:42 -0700 (PDT) Received: from [192.168.0.100] ([110.190.119.243]) by mx.google.com with ESMTPSA id mt1sm2071841pbb.31.2014.08.05.06.20.37 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Aug 2014 06:20:41 -0700 (PDT) Message-ID: <53E0DA1B.2020705@gmail.com> Date: Tue, 05 Aug 2014 21:20:27 +0800 From: Kinglong Mee User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.0 MIME-Version: 1.0 To: "J. Bruce Fields" CC: Trond Myklebust , Jeff Layton , Linux NFS Mailing List , kinglongmee@gmail.com Subject: [PATCH] NFSD: Put the reference of nfs4_file when freeing stid Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP After testing nfs4 lock, I restart the nfsd service, got messages as, [ 5677.403419] nfsd: last server has exited, flushing export cache [ 5677.463728] ============================================================================= [ 5677.463942] BUG nfsd4_files (Tainted: G B OE): Objects remaining in nfsd4_files on kmem_cache_close() [ 5677.464055] ----------------------------------------------------------------------------- [ 5677.464203] INFO: Slab 0xffffea0000233400 objects=28 used=1 fp=0xffff880008cd3d98 flags=0x3ffc0000004080 [ 5677.464318] CPU: 0 PID: 3772 Comm: rmmod Tainted: G B OE 3.16.0-rc2+ #29 [ 5677.464420] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/31/2013 [ 5677.464538] 0000000000000000 0000000036af2c9f ffff88000ce97d68 ffffffff816eacfa [ 5677.464643] ffffea0000233400 ffff88000ce97e40 ffffffff811cda44 ffffffff00000020 [ 5677.464774] ffff88000ce97e50 ffff88000ce97e00 656a624f00000008 616d657220737463 [ 5677.464875] Call Trace: [ 5677.464925] [] dump_stack+0x45/0x56 [ 5677.464983] [] slab_err+0xb4/0xe0 [ 5677.465040] [] ? __kmalloc+0x117/0x290 [ 5677.465099] [] ? on_each_cpu_cond+0xac/0xf0 [ 5677.465158] [] ? kmem_cache_close+0x110/0x2e0 [ 5677.465218] [] kmem_cache_close+0x130/0x2e0 [ 5677.465279] [] ? kobject_cleanup+0x91/0x1b0 [ 5677.465338] [] __kmem_cache_shutdown+0xe/0x10 [ 5677.465399] [] kmem_cache_destroy+0x48/0x100 [ 5677.465466] [] nfsd4_free_slabs+0x2d/0x50 [nfsd] [ 5677.465530] [] exit_nfsd+0x34/0x6ad [nfsd] [ 5677.465589] [] SyS_delete_module+0x162/0x200 [ 5677.465649] [] ? do_notify_resume+0x59/0x90 [ 5677.465759] [] system_call_fastpath+0x16/0x1b [ 5677.465822] INFO: Object 0xffff880008cd0000 @offset=0 [ 5677.465882] INFO: Allocated in nfsd4_process_open1+0x61/0x350 [nfsd] age=7599 cpu=0 pid=3253 [ 5677.466115] __slab_alloc+0x3b0/0x4b1 [ 5677.466166] kmem_cache_alloc+0x1e4/0x240 [ 5677.466220] nfsd4_process_open1+0x61/0x350 [nfsd] [ 5677.466276] nfsd4_open+0xee/0x860 [nfsd] [ 5677.466329] nfsd4_proc_compound+0x4d7/0x7f0 [nfsd] [ 5677.466384] nfsd_dispatch+0xbb/0x200 [nfsd] [ 5677.466447] svc_process_common+0x453/0x6f0 [sunrpc] [ 5677.466506] svc_process+0x103/0x170 [sunrpc] [ 5677.466559] nfsd+0x117/0x190 [nfsd] [ 5677.466609] kthread+0xd8/0xf0 [ 5677.466656] ret_from_fork+0x7c/0xb0 [ 5677.466775] kmem_cache_destroy nfsd4_files: Slab cache still has objects [ 5677.466839] CPU: 0 PID: 3772 Comm: rmmod Tainted: G B OE 3.16.0-rc2+ #29 [ 5677.466937] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/31/2013 [ 5677.467049] 0000000000000000 0000000036af2c9f ffff88000ce97eb0 ffffffff816eacfa [ 5677.467150] ffff880020bb2d00 ffff88000ce97ed0 ffffffff8119bdd9 0000000000000000 [ 5677.467250] ffffffffa06065c0 ffff88000ce97ee0 ffffffffa05ef78d ffff88000ce97ef0 [ 5677.467351] Call Trace: [ 5677.467397] [] dump_stack+0x45/0x56 [ 5677.467454] [] kmem_cache_destroy+0xf9/0x100 [ 5677.467516] [] nfsd4_free_slabs+0x2d/0x50 [nfsd] [ 5677.467579] [] exit_nfsd+0x34/0x6ad [nfsd] [ 5677.467639] [] SyS_delete_module+0x162/0x200 [ 5677.467765] [] ? do_notify_resume+0x59/0x90 [ 5677.467826] [] system_call_fastpath+0x16/0x1b Signed-off-by: Kinglong Mee Reviewed-by: Jeff Layton --- fs/nfsd/nfs4state.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 56999cb..e87005d 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -1037,6 +1037,7 @@ static void free_ol_stateid_reaplist(struct list_head *reaplist) { struct nfs4_ol_stateid *stp; + struct nfs4_file *fp; might_sleep(); @@ -1044,7 +1045,10 @@ free_ol_stateid_reaplist(struct list_head *reaplist) stp = list_first_entry(reaplist, struct nfs4_ol_stateid, st_locks); list_del(&stp->st_locks); + fp = stp->st_stid.sc_file; stp->st_stid.sc_free(&stp->st_stid); + if (fp) + put_nfs4_file(fp); } }