Re: WARNING in shmem_evict_inode

From: Holger HoffstÃtte
Date: Wed Dec 16 2015 - 14:23:18 EST


On 12/02/15 10:29, Hugh Dickins wrote:
> On Mon, 23 Nov 2015, Dmitry Vyukov wrote:
>> On Mon, Nov 9, 2015 at 9:55 AM, Dmitry Vyukov <dvyukov@xxxxxxxxxx> wrote:
[snip]
>>> triggers WARNING in shmem_evict_inode:
>>>
>>> ------------[ cut here ]------------
>>> WARNING: CPU: 0 PID: 10442 at mm/shmem.c:625 shmem_evict_inode+0x335/0x480()
>>> Modules linked in:
>>> CPU: 1 PID: 8944 Comm: executor Not tainted 4.3.0+ #39
>>> Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
>>> 00000000ffffffff ffff88006c6afab8 ffffffff81aad406 0000000000000000
>>> ffff88006e39ac80 ffffffff83091660 ffff88006c6afaf8 ffffffff81100829
>>> ffffffff814192e5 ffffffff83091660 0000000000000271 ffff88003d075aa8
>>> Call Trace:
>>> [<ffffffff81100a59>] warn_slowpath_null+0x29/0x30 kernel/panic.c:480
>>> [<ffffffff814192e5>] shmem_evict_inode+0x335/0x480 mm/shmem.c:625
>>> [<ffffffff8151560e>] evict+0x26e/0x580 fs/inode.c:542
>>> [< inline >] iput_final fs/inode.c:1477
[snip]
> It was more interesting than I expected, thanks.
> I believe you will find that this fixes it.
>
> [PATCH] tmpfs: fix shmem_evict_inode warnings on i_blocks

Since I just saw this in Linus' tree, here's another retrospective bug
report and Thank You for fixing it. :-)

The problem is quite real, even though I'm probably the only other person
to ever report it, see: http://www.spinics.net/lists/linux-fsdevel/msg83567.html

> Cc stable? I don't think that's necessary, but might be proved wrong:
> along with the warning, the bug does allow one page beyond the limit
> to be allocated from a size-limited tmpfs mount.

It applies and works fine, so it probably wouldn't hurt. I'm using it in my
4.1++ tree as we speak, no problems.

-h

--
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/