On Fri, Sep 25, 2020 at 12:44 PM Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote: > > On Fri, Sep 25, 2020 at 1:57 AM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote: > > > > On Thu, Sep 24, 2020 at 10:04:40PM +0200, Sedat Dilek wrote: > > > On Thu, Sep 24, 2020 at 10:02 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote: > > > > > > > > On Thu, Sep 24, 2020 at 09:54:36PM +0200, Sedat Dilek wrote: > > > > > You are named in "mm: fix misplaced unlock_page in do_wp_page()". > > > > > Is this here a different issue? > > > > > > > > Yes, completely different. That bug is one Linus introduced in this > > > > cycle; the bug that this patch fixes was introduced a couple of years > > > > ago, and we only noticed now because I added an assertion to -next. > > > > Maybe I should add the assertion for 5.9 too. > > > > > > Can you point me to this "assertion"? > > > Thanks. > > > > Here's the version against 5.8 > > > > diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c > > index 810f7dae11d9..b421e4efc4bd 100644 > > --- a/fs/iomap/buffered-io.c > > +++ b/fs/iomap/buffered-io.c > > @@ -70,11 +70,15 @@ static void > > iomap_page_release(struct page *page) > > { > > struct iomap_page *iop = detach_page_private(page); > > + unsigned int nr_blocks = PAGE_SIZE / i_blocksize(page->mapping->host); > > > > if (!iop) > > return; > > WARN_ON_ONCE(atomic_read(&iop->read_count)); > > WARN_ON_ONCE(atomic_read(&iop->write_count)); > > + WARN_ON_ONCE(bitmap_full(iop->uptodate, nr_blocks) != > > + PageUptodate(page)); > > + > > Are you sure this is "bitmap_full()" or should it be "bitmap_f*i*ll()"? > > Both are available in include/linux/bitmap.h. > OK, I checked linux-next (next-20200925) and iomap_page_release() (see [1] and [2]). Cut-N-Paste is malformatting here in Gmail, so I add the links below. I also looked into __gfs2_readpage() in fs/gfs2/aops.c: if (i_blocksize(page->mapping->host) == PAGE_SIZE && !page_has_buffers(page)) { error = iomap_readpage(page, &gfs2_iomap_ops); Thanks. - Sedat - [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/fs/iomap/buffered-io.c?h=next-20200925#n67 [2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/fs/iomap/buffered-io.c?h=next-20200925#n77 [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/fs/gfs2/aops.c?h=next-20200925#n471 > > > kfree(iop); > > } > >