This does seem to fix the problem I've been having. I was encountering all I/Os to be blocked on my Android device almost on a daily basis, but after this patch I'm rock solid for almost a week.
I'd appreciate it if you could add the following tags: Reported-by: Park Ju Hyung <qkrwngud...@gmail.com> Tested-by: Park Ju Hyung <qkrwngud...@gmail.com> Also, a little additional note would be helpful for those who are unfamiliar with f2fs: This fixes a deadlock causing all I/Os to be blocked during heavy GC. Thanks, On Wed, Oct 17, 2018 at 11:34 AM Jaegeuk Kim <jaeg...@kernel.org> wrote: > > This reverts commit 66110abc4c931f879d70e83e1281f891699364bf. > > If we clear the cold data flag out of the writeback flow, we can miscount > -1 by end_io. > > Balancing F2FS Async: > - IO (CP: 1, Data: -1, Flush: ( 0 0 1), Discard: ( ... > > GC thread: IRQ > - move_data_page() > - set_page_dirty() > - clear_cold_data() > - f2fs_write_end_io() > - type = WB_DATA_TYPE(page); > here, we get wrong type > - dec_page_count(sbi, type); > - f2fs_wait_on_page_writeback() > > Cc: <sta...@vger.kernel.org> > Signed-off-by: Jaegeuk Kim <jaeg...@kernel.org> > --- > fs/f2fs/data.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c > index 3f272c18fb61..0d0b4dd55b04 100644 > --- a/fs/f2fs/data.c > +++ b/fs/f2fs/data.c > @@ -2650,10 +2650,6 @@ static int f2fs_set_data_page_dirty(struct page *page) > if (!PageUptodate(page)) > SetPageUptodate(page); > > - /* don't remain PG_checked flag which was set during GC */ > - if (is_cold_data(page)) > - clear_cold_data(page); > - > if (f2fs_is_atomic_file(inode) && > !f2fs_is_commit_atomic_write(inode)) { > if (!IS_ATOMIC_WRITTEN_PAGE(page)) { > f2fs_register_inmem_page(inode, page); > -- > 2.19.0.605.g01d371f741-goog > > > > _______________________________________________ > Linux-f2fs-devel mailing list > Linux-f2fs-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel