From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934426AbdDFKah (ORCPT ); Thu, 6 Apr 2017 06:30:37 -0400 Received: from szxga01-in.huawei.com ([45.249.212.187]:5307 "EHLO dggrg01-dlp.huawei.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S932662AbdDFKa3 (ORCPT ); Thu, 6 Apr 2017 06:30:29 -0400 Subject: Re: [f2fs-dev] [PATCH 1/2] f2fs: count writeback pages correctly To: Jaegeuk Kim , , , References: <20170405180201.4021-1-jaegeuk@kernel.org> From: Chao Yu Message-ID: <18bac85c-ee9a-76a8-5f89-f395579b2edd@huawei.com> Date: Thu, 6 Apr 2017 18:30:17 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: <20170405180201.4021-1-jaegeuk@kernel.org> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.134.22.195] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A090206.58E618BD.010B,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=0.0.0.0, so=2014-11-16 11:51:01, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 17af2a8be9c017ad04ad41412605352b Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Jaegeuk, On 2017/4/6 2:02, Jaegeuk Kim wrote: > This patch fixes # of outstanding writeback pages by checking its original page. Originally, we use bio_page to track encrypted page which is been writebacked, there are two cases: 1. background flush through .writepages: encrypted_page has no mapping info, will not be tracked. 2. synchronized GC through move_encrypted_block: encrypted_page is meta page, will be tracked. So there is no problem with old code? Thanks, > > Signed-off-by: Jaegeuk Kim > --- > fs/f2fs/data.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c > index 3d74c0ffa4c7..af3e849e96d2 100644 > --- a/fs/f2fs/data.c > +++ b/fs/f2fs/data.c > @@ -94,7 +94,6 @@ static void f2fs_write_end_io(struct bio *bio) > > bio_for_each_segment_all(bvec, bio, i) { > struct page *page = bvec->bv_page; > - enum count_type type = WB_DATA_TYPE(page); > > if (IS_DUMMY_WRITTEN_PAGE(page)) { > set_page_private(page, (unsigned long)NULL); > @@ -113,7 +112,7 @@ static void f2fs_write_end_io(struct bio *bio) > mapping_set_error(page->mapping, -EIO); > f2fs_stop_checkpoint(sbi, true); > } > - dec_page_count(sbi, type); > + dec_page_count(sbi, WB_DATA_TYPE(page)); > clear_cold_data(page); > end_page_writeback(page); > } > @@ -389,7 +388,7 @@ int f2fs_submit_page_mbio(struct f2fs_io_info *fio) > fio->submitted = 1; > > if (!is_read) > - inc_page_count(sbi, WB_DATA_TYPE(bio_page)); > + inc_page_count(sbi, WB_DATA_TYPE(fio->page)); > > down_write(&io->io_rwsem); > > @@ -403,7 +402,7 @@ int f2fs_submit_page_mbio(struct f2fs_io_info *fio) > fio->new_blkaddr & F2FS_IO_SIZE_MASK(sbi)) { > err = -EAGAIN; > if (!is_read) > - dec_page_count(sbi, WB_DATA_TYPE(bio_page)); > + dec_page_count(sbi, WB_DATA_TYPE(fio->page)); > goto out_fail; > } > io->bio = __bio_alloc(sbi, fio->new_blkaddr, >