On Thu, Mar 07, 2013 at 03:52:49PM +0100, Jan Kara wrote: > ext4_releasepage() warns when it is passed a page with PageChecked set. > However this can correctly happen when invalidate_inode_pages2_range() > invalidates pages - and we should fail the release in that case. Since > the page was dirty anyway, it won't be discarded and no harm has > happened but it's good to be safe. Also remove bogus page_has_buffers() > check - we are guaranteed page has buffers in this function. > > Reported-by: Zheng Liu <gnehzuil.liu@xxxxxxxxx> > Signed-off-by: Jan Kara <jack@xxxxxxx> Thanks for fixing it. I can confirm that the warning disappears. Tested-by: Zheng Liu <wenqing.lz@xxxxxxxxxx> Regards, - Zheng > --- > fs/ext4/inode.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index 9c4f4b1..34cc72d 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -2912,8 +2912,8 @@ static int ext4_releasepage(struct page *page, gfp_t wait) > > trace_ext4_releasepage(page); > > - WARN_ON(PageChecked(page)); > - if (!page_has_buffers(page)) > + /* Page has dirty journalled data -> cannot release */ > + if (PageChecked(page)) > return 0; > if (journal) > return jbd2_journal_try_to_free_buffers(journal, page, wait); > -- > 1.7.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html