From: "J. Bruce Fields" <bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> To: NeilBrown <neilb-l3A5Bk7waGM@public.gmane.org> Cc: Al Viro <viro-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org>, Nick Piggin <npiggin-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, Nick Piggin <npiggin-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>, linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Stanislav Kinsbursky <skinsbursky-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org> Subject: Re: [PATCH] fs/dcache: allow __d_obtain_alias() to return unhashed dentries Date: Thu, 16 Feb 2012 11:08:27 -0500 [thread overview] Message-ID: <20120216160827.GB20762@fieldses.org> (raw) In-Reply-To: <20120216115133.GA20279-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> On Thu, Feb 16, 2012 at 06:51:33AM -0500, J. Bruce Fields wrote: > I'm seeing something similar happening on an upstream kernel, so I'll > try to figure out where that's coming from now.... After taking another look, actually this was something happening on proc, not on an exported filesystem. Running some tests on a kernel with this extra warning added to __d_instantiate whenever it gives a directory a second alias: Feb 15 14:43:07 pip1 kernel: __d_instantiate adding alias ffff880037bf51c0(8) to dir ffff880035eaf048(4026532190) with existing alias(es) ffff880034037180(88) The numbers after the dentry pointers are dentry flags in hex (8 == DCACHE_OP_DELETE, 88 == DCACHE_RCUACCESS|DCACHE_OP_DELETE), and after the inode pointers is an inode number. I don't know if it's a bug or not, though it seems suspicous. --b. Feb 15 14:43:07 pip1 kernel: ------------[ cut here ]------------ Feb 15 14:43:07 pip1 kernel: WARNING: at fs/dcache.c:1320 __d_instantiate+0x185/0x1d0() Feb 15 14:43:07 pip1 kernel: Hardware name: Bochs Feb 15 14:43:07 pip1 kernel: Modules linked in: nfsd lockd nfs_acl auth_rpcgss sunrpc [last unloaded: scsi_wait_scan] Feb 15 14:43:07 pip1 kernel: Pid: 4810, comm: exportfs Not tainted 3.3.0-rc2-00517-g35ae270 #1070 Feb 15 14:43:07 pip1 kernel: Call Trace: Feb 15 14:43:07 pip1 kernel: [<ffffffff8104040f>] warn_slowpath_common+0x7f/0xc0 Feb 15 14:43:07 pip1 kernel: [<ffffffff8104046a>] warn_slowpath_null+0x1a/0x20 Feb 15 14:43:07 pip1 kernel: [<ffffffff8113f885>] __d_instantiate+0x185/0x1d0 Feb 15 14:43:07 pip1 kernel: [<ffffffff8113face>] d_instantiate+0x4e/0x90 Feb 15 14:43:07 pip1 kernel: [<ffffffff81192d7b>] proc_lookup_de+0xab/0x110 Feb 15 14:43:07 pip1 kernel: [<ffffffff81196a90>] ? proc_sys_poll_notify+0x30/0x30 Feb 15 14:43:07 pip1 kernel: [<ffffffff81196c1f>] proc_tgid_net_lookup+0x3f/0x50 Feb 15 14:43:07 pip1 kernel: [<ffffffff81133f55>] d_alloc_and_lookup+0x45/0x90 Feb 15 14:43:07 pip1 kernel: [<ffffffff8113e455>] ? d_lookup+0x35/0x60 Feb 15 14:43:07 pip1 kernel: [<ffffffff8113453a>] do_lookup+0x28a/0x3b0 Feb 15 14:43:07 pip1 kernel: [<ffffffff814c792c>] ? security_inode_permission+0x1c/0x30 Feb 15 14:43:07 pip1 kernel: [<ffffffff81135337>] link_path_walk+0x157/0x940 Feb 15 14:43:07 pip1 kernel: [<ffffffff8113910c>] path_openat+0xbc/0x440 Feb 15 14:43:07 pip1 kernel: [<ffffffff81106243>] ? might_fault+0x53/0xb0 Feb 15 14:43:07 pip1 kernel: [<ffffffff81106243>] ? might_fault+0x53/0xb0 Feb 15 14:43:07 pip1 kernel: [<ffffffff81145aeb>] ? alloc_fd+0x3b/0x160 Feb 15 14:43:07 pip1 kernel: [<ffffffff811395a9>] do_filp_open+0x49/0xa0 Feb 15 14:43:07 pip1 kernel: [<ffffffff81145b5b>] ? alloc_fd+0xab/0x160 Feb 15 14:43:07 pip1 kernel: [<ffffffff81126328>] do_sys_open+0x108/0x1e0 Feb 15 14:43:07 pip1 kernel: [<ffffffff81126441>] sys_open+0x21/0x30 Feb 15 14:43:07 pip1 kernel: [<ffffffff81973252>] system_call_fastpath+0x16/0x1b Feb 15 14:43:07 pip1 kernel: ---[ end trace 5714bb1463cb9b46 ]--- > > > I think that using __d_find_any_alias would just be papering over the > > problem, and would trigger a BUG_ON when it returned a non-DISCONNECTED alias. > > Right, I throw away that BUG_ON as well. Tested on rhel5 only. > > --b. -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: "J. Bruce Fields" <bfields@fieldses.org> To: NeilBrown <neilb@suse.de> Cc: Al Viro <viro@ZenIV.linux.org.uk>, Nick Piggin <npiggin@gmail.com>, Nick Piggin <npiggin@kernel.dk>, linux-nfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, Stanislav Kinsbursky <skinsbursky@parallels.com> Subject: Re: [PATCH] fs/dcache: allow __d_obtain_alias() to return unhashed dentries Date: Thu, 16 Feb 2012 11:08:27 -0500 [thread overview] Message-ID: <20120216160827.GB20762@fieldses.org> (raw) In-Reply-To: <20120216115133.GA20279@fieldses.org> On Thu, Feb 16, 2012 at 06:51:33AM -0500, J. Bruce Fields wrote: > I'm seeing something similar happening on an upstream kernel, so I'll > try to figure out where that's coming from now.... After taking another look, actually this was something happening on proc, not on an exported filesystem. Running some tests on a kernel with this extra warning added to __d_instantiate whenever it gives a directory a second alias: Feb 15 14:43:07 pip1 kernel: __d_instantiate adding alias ffff880037bf51c0(8) to dir ffff880035eaf048(4026532190) with existing alias(es) ffff880034037180(88) The numbers after the dentry pointers are dentry flags in hex (8 == DCACHE_OP_DELETE, 88 == DCACHE_RCUACCESS|DCACHE_OP_DELETE), and after the inode pointers is an inode number. I don't know if it's a bug or not, though it seems suspicous. --b. Feb 15 14:43:07 pip1 kernel: ------------[ cut here ]------------ Feb 15 14:43:07 pip1 kernel: WARNING: at fs/dcache.c:1320 __d_instantiate+0x185/0x1d0() Feb 15 14:43:07 pip1 kernel: Hardware name: Bochs Feb 15 14:43:07 pip1 kernel: Modules linked in: nfsd lockd nfs_acl auth_rpcgss sunrpc [last unloaded: scsi_wait_scan] Feb 15 14:43:07 pip1 kernel: Pid: 4810, comm: exportfs Not tainted 3.3.0-rc2-00517-g35ae270 #1070 Feb 15 14:43:07 pip1 kernel: Call Trace: Feb 15 14:43:07 pip1 kernel: [<ffffffff8104040f>] warn_slowpath_common+0x7f/0xc0 Feb 15 14:43:07 pip1 kernel: [<ffffffff8104046a>] warn_slowpath_null+0x1a/0x20 Feb 15 14:43:07 pip1 kernel: [<ffffffff8113f885>] __d_instantiate+0x185/0x1d0 Feb 15 14:43:07 pip1 kernel: [<ffffffff8113face>] d_instantiate+0x4e/0x90 Feb 15 14:43:07 pip1 kernel: [<ffffffff81192d7b>] proc_lookup_de+0xab/0x110 Feb 15 14:43:07 pip1 kernel: [<ffffffff81196a90>] ? proc_sys_poll_notify+0x30/0x30 Feb 15 14:43:07 pip1 kernel: [<ffffffff81196c1f>] proc_tgid_net_lookup+0x3f/0x50 Feb 15 14:43:07 pip1 kernel: [<ffffffff81133f55>] d_alloc_and_lookup+0x45/0x90 Feb 15 14:43:07 pip1 kernel: [<ffffffff8113e455>] ? d_lookup+0x35/0x60 Feb 15 14:43:07 pip1 kernel: [<ffffffff8113453a>] do_lookup+0x28a/0x3b0 Feb 15 14:43:07 pip1 kernel: [<ffffffff814c792c>] ? security_inode_permission+0x1c/0x30 Feb 15 14:43:07 pip1 kernel: [<ffffffff81135337>] link_path_walk+0x157/0x940 Feb 15 14:43:07 pip1 kernel: [<ffffffff8113910c>] path_openat+0xbc/0x440 Feb 15 14:43:07 pip1 kernel: [<ffffffff81106243>] ? might_fault+0x53/0xb0 Feb 15 14:43:07 pip1 kernel: [<ffffffff81106243>] ? might_fault+0x53/0xb0 Feb 15 14:43:07 pip1 kernel: [<ffffffff81145aeb>] ? alloc_fd+0x3b/0x160 Feb 15 14:43:07 pip1 kernel: [<ffffffff811395a9>] do_filp_open+0x49/0xa0 Feb 15 14:43:07 pip1 kernel: [<ffffffff81145b5b>] ? alloc_fd+0xab/0x160 Feb 15 14:43:07 pip1 kernel: [<ffffffff81126328>] do_sys_open+0x108/0x1e0 Feb 15 14:43:07 pip1 kernel: [<ffffffff81126441>] sys_open+0x21/0x30 Feb 15 14:43:07 pip1 kernel: [<ffffffff81973252>] system_call_fastpath+0x16/0x1b Feb 15 14:43:07 pip1 kernel: ---[ end trace 5714bb1463cb9b46 ]--- > > > I think that using __d_find_any_alias would just be papering over the > > problem, and would trigger a BUG_ON when it returned a non-DISCONNECTED alias. > > Right, I throw away that BUG_ON as well. Tested on rhel5 only. > > --b.
next prev parent reply other threads:[~2012-02-16 16:08 UTC|newest] Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-11-12 18:43 lifetime of DCACHE_DISCONECTED dentries J. Bruce Fields 2010-11-13 11:53 ` Nick Piggin 2010-11-13 11:53 ` Nick Piggin 2010-11-15 17:48 ` J. Bruce Fields 2010-11-15 17:48 ` J. Bruce Fields [not found] ` <20101115174837.GB10044-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2010-11-16 6:45 ` Nick Piggin 2010-11-16 6:45 ` Nick Piggin 2010-11-29 3:56 ` Nick Piggin 2010-11-29 3:56 ` Nick Piggin 2010-11-29 19:32 ` J. Bruce Fields 2010-11-29 19:32 ` J. Bruce Fields [not found] ` <20101129193248.GA9897-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2010-11-30 1:00 ` Nick Piggin 2010-11-30 1:00 ` Nick Piggin [not found] ` <AANLkTikwzDJ_q65==uxDsAhp3h8bU7Rkt7U9gVgRAK0D-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2010-11-30 18:39 ` J. Bruce Fields 2010-11-30 18:39 ` J. Bruce Fields 2010-12-03 22:33 ` [PATCH] nfsd4: allow __d_obtain_alias() to return unhashed dentries J. Bruce Fields 2010-12-03 22:33 ` J. Bruce Fields 2010-12-13 5:19 ` Nick Piggin 2010-12-13 5:19 ` Nick Piggin 2010-12-14 22:01 ` J. Bruce Fields 2010-12-14 22:01 ` J. Bruce Fields [not found] ` <20101214220102.GM24828-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2010-12-17 17:53 ` [PATCH] fs/dcache: use standard list macro for d_find_alias J. Bruce Fields 2010-12-17 17:53 ` J. Bruce Fields 2010-12-17 18:00 ` [PATCH 2/2] fs/dcache: allow __d_obtain_alias() to return unhashed dentries J. Bruce Fields 2010-12-17 18:00 ` J. Bruce Fields 2010-12-18 2:01 ` Nick Piggin 2010-12-18 2:01 ` Nick Piggin 2010-12-18 16:16 ` J. Bruce Fields 2010-12-18 16:16 ` J. Bruce Fields [not found] ` <20101218161609.GA22150-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2010-12-19 14:53 ` Nick Piggin 2010-12-19 14:53 ` Nick Piggin [not found] ` <AANLkTingRv_gtRSctGzMfYrKg02M_sKj97HSQPRm_mA_-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2010-12-27 23:46 ` [PATCH] " J. Bruce Fields 2010-12-27 23:46 ` J. Bruce Fields [not found] ` <20101227234641.GA22248-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2011-01-18 20:45 ` J. Bruce Fields 2011-01-18 20:45 ` J. Bruce Fields [not found] ` <20110118204509.GA10903-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2011-01-18 22:02 ` Nick Piggin 2011-01-18 22:02 ` Nick Piggin [not found] ` <AANLkTikL2CDSWQJ1QH_Y4G-j70Vd=VesNMMnYTmMGHC9-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2011-01-18 22:08 ` J. Bruce Fields 2011-01-18 22:08 ` J. Bruce Fields [not found] ` <20110118220817.GF10903-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2011-03-08 18:13 ` J. Bruce Fields 2011-03-08 18:13 ` J. Bruce Fields [not found] ` <20110308181320.GA15566-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2011-03-10 10:58 ` Al Viro 2011-03-10 10:58 ` Al Viro [not found] ` <20110310105821.GE22723-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org> 2011-03-11 4:07 ` NeilBrown 2011-03-11 4:07 ` NeilBrown [not found] ` <20110311150749.2fa2be66-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org> 2012-02-14 17:03 ` J. Bruce Fields 2012-02-14 17:03 ` J. Bruce Fields [not found] ` <20120214170300.GA4309-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2012-02-15 16:56 ` J. Bruce Fields 2012-02-15 16:56 ` J. Bruce Fields [not found] ` <20120215165633.GE12490-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2012-02-16 3:06 ` NeilBrown 2012-02-16 3:06 ` NeilBrown [not found] ` <20120216140603.08cb4900-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org> 2012-02-16 11:51 ` J. Bruce Fields 2012-02-16 11:51 ` J. Bruce Fields [not found] ` <20120216115133.GA20279-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2012-02-16 16:08 ` J. Bruce Fields [this message] 2012-02-16 16:08 ` J. Bruce Fields 2012-02-16 22:30 ` J. Bruce Fields [not found] ` <20120216223011.GA23997-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2012-02-17 16:34 ` Peng Tao 2012-02-17 16:34 ` Peng Tao 2012-03-13 20:55 ` J. Bruce Fields 2012-03-13 20:55 ` J. Bruce Fields 2012-03-13 20:58 ` [PATCH 1/2] vfs: stop d_splice_alias creating directory aliases J. Bruce Fields 2012-03-13 20:58 ` [PATCH 2/2] vfs: remove unused __d_splice_alias argument J. Bruce Fields 2012-02-20 2:55 ` [PATCH] fs/dcache: allow __d_obtain_alias() to return unhashed dentries NeilBrown 2012-02-20 2:55 ` NeilBrown [not found] ` <20120220135537.3078e20b-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org> 2012-02-29 23:10 ` J. Bruce Fields 2012-02-29 23:10 ` J. Bruce Fields 2012-06-28 13:59 ` J. Bruce Fields 2012-06-28 13:59 ` J. Bruce Fields [not found] ` <20120628135927.GA6406-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2012-06-29 20:10 ` J. Bruce Fields 2012-06-29 20:10 ` J. Bruce Fields [not found] ` <20120629201034.GA17103-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> 2012-06-29 20:29 ` J. Bruce Fields 2012-06-29 20:29 ` J. Bruce Fields 2012-07-01 23:15 ` NeilBrown
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20120216160827.GB20762@fieldses.org \ --to=bfields-uc3wqj2krung9huczpvpmw@public.gmane.org \ --cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=neilb-l3A5Bk7waGM@public.gmane.org \ --cc=npiggin-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \ --cc=npiggin-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org \ --cc=skinsbursky-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org \ --cc=viro-3bDd1+5oDREiFSDQTTA3OLVCufUGDwFn@public.gmane.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.