Re: Oops in d_instantiate (fs/cache.c)

From: Stijn Devriendt
Date: Mon Dec 12 2011 - 06:35:52 EST


On Sat, Dec 3, 2011 at 1:19 PM, Stijn Devriendt <highguy@xxxxxxxxx> wrote:
> Hi all,
>
> I've had 2 occasions where udev crashed during bootup.
> The second time carried a kernel log where the following line
> "BUG_ON(!list_empty(&entry->d_alias))"
> in d_instantiate is triggered when udev is attempting to
> create a symlink in /dev (which is tmpfs/shmem).
>
> I've tried reproducing this by doing as udev does:
> - create temporary symlink
> - move temporary symlink into place
> in a tight loop (multiple processes) while multiple
> other processes were removing the symlink in a
> tight loop.
> A third script was flushing the dentry/inode cache
> every so often using drop_caches.
> All to no avail.
>
> I've been digging around in the kernel sources,
> but I'm not sure what the d_alias field means
> and what the actual case is the BUG_ON is
> meant to catch. I'd like to be able to find a way
> to reproduce this, because so far it's happened only
> twice in 2 weeks over multiple systems doing
> many reboots in a testing setup.
> Can someone explain this to me in short?
>
> Thanks,
> Stijn

Trying resend...

Stijn
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/