Re: INFO: suspicious rcu_dereference_check()

Trond Myklebust
2010-03-25T15:36:45Z

On Thu, 2010-03-25 at 11:48 +0100, Zdenek Kabelac wrote:
> Hi
>
> I've enabled rcu correctness for my todays 2.6.34-rc2 kernel.
>
> I'm getting this INFO: from my kvm guest (which uses host's nfs
> exported directory.)
> This
>
> ===================================================
> [ INFO: suspicious rcu_dereference_check() usage. ]
> ---------------------------------------------------
> fs/nfs/delegation.c:348 invoked rcu_dereference_check() without protection!
>
> other info that might help us debug this:
>
>
> rcu_scheduler_active = 1, debug_locks = 0
> 2 locks held by rm/1820:
> #0: (&sb->s_type->i_mutex_key#13/1){+.+.+.}, at:
> [<ffffffff81138e1b>] do_unlinkat+0x9b/0x1c0
> #1: (&sb->s_type->i_mutex_key#13){+.+.+.}, at: [<ffffffff81136a76>]
> vfs_unlink+0x56/0xf0
>
> stack backtrace:
> Pid: 1820, comm: rm Not tainted 2.6.34-rc2-00186-ge79a302 #60
> Call Trace:
> [<ffffffff810819fb>] lockdep_rcu_dereference+0xbb/0xc0
> [<ffffffffa0228351>] nfs_inode_return_delegation+0x101/0x110 [nfs]
> [<ffffffffa01fd58d>] nfs_unlink+0xad/0x2a0 [nfs]
> [<ffffffff81136aba>] vfs_unlink+0x9a/0xf0
> [<ffffffff81148365>] ? mnt_want_write+0x65/0xb0
> [<ffffffff81138f03>] do_unlinkat+0x183/0x1c0
> [<ffffffff8142b66d>] ? retint_swapgs+0xe/0x13
> [<ffffffff81083985>] ? trace_hardirqs_on_caller+0x155/0x1a0
> [<ffffffff8142a232>] ? trace_hardirqs_on_thunk+0x3a/0x3f
> [<ffffffff811390a2>] sys_unlinkat+0x22/0x40
> [<ffffffff81031dc8>] sysenter_dispatch+0x7/0x2c
>

It is a 100% bogus warning. There are tentative patches floating around
to fix the above warning, but they haven't been merged yet.

In the meantime, please ignore...

Cheers
Trond