[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <alpine.LSU.2.11.1904081014060.2770@eggly.anvils>
Date: Mon, 8 Apr 2019 10:26:17 -0700 (PDT)
From: Hugh Dickins <hughd@...gle.com>
To: Konstantin Khlebnikov <khlebnikov@...dex-team.ru>
cc: Hugh Dickins <hughd@...gle.com>,
"Alex Xu (Hello71)" <alex_y_xu@...oo.ca>,
Vineeth Pillai <vpillai@...italocean.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Kelley Nielsen <kelleynnn@...il.com>,
linux-kernel@...r.kernel.org, linux-mm@...ck.org,
Rik van Riel <riel@...riel.com>,
Huang Ying <ying.huang@...el.com>,
Al Viro <viro@...iv.linux.org.uk>
Subject: Re: shmem_recalc_inode: unable to handle kernel NULL pointer
dereference
On Mon, 8 Apr 2019, Konstantin Khlebnikov wrote:
>
> I suppose your solution will wait for wakeup from shmem_evict_inode()?
No, it's the other way round: shmem_unuse() gets on with its work without
delay, shmem_evict_inode() waits until the stop_eviction count has gone
down to zero, saying nobody else is at work on the inode.
Waiting in shmem_evict_inode() might be more worrying, if it weren't
already packed full with lock_page()s. And less attractive with the old
quadratic style of swapoff, when shmem_evict_inode() would have freed
the inode's swap much more efficiently than swapoff could then manage.
Hugh
Powered by blists - more mailing lists