From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751163AbdFACMI (ORCPT ); Wed, 31 May 2017 22:12:08 -0400 Received: from mail.kernel.org ([198.145.29.99]:46660 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751037AbdFACMH (ORCPT ); Wed, 31 May 2017 22:12:07 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D247723A0C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=jaegeuk@kernel.org Date: Wed, 31 May 2017 19:12:06 -0700 From: Jaegeuk Kim To: Chao Yu Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net Subject: Re: [f2fs-dev] [PATCH] f2fs: remove false-positive bug_on Message-ID: <20170601021206.GB35573@jaegeuk-macbookpro.roam.corp.google.com> References: <20170526235923.31058-1-jaegeuk@kernel.org> <995a8c2b-d29f-5c82-6d7c-90e93770f620@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <995a8c2b-d29f-5c82-6d7c-90e93770f620@kernel.org> User-Agent: Mutt/1.8.2 (2017-04-18) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/31, Chao Yu wrote: > Hi Jaegeuk, > > On 2017/5/27 7:59, Jaegeuk Kim wrote: > > If we got failure from both of create and evict_inode, we can hit this wrong > > bug_on. > > > > Signed-off-by: Jaegeuk Kim > > --- > > fs/f2fs/inode.c | 2 -- > > 1 file changed, 2 deletions(-) > > > > diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c > > index e53c784ab11e..5673b0bd83b5 100644 > > --- a/fs/f2fs/inode.c > > +++ b/fs/f2fs/inode.c > > @@ -426,8 +426,6 @@ void f2fs_evict_inode(struct inode *inode) > > alloc_nid_failed(sbi, inode->i_ino); > > clear_inode_flag(inode, FI_FREE_NID); > > } > > - f2fs_bug_on(sbi, err && > > - !exist_written_data(sbi, inode->i_ino, ORPHAN_INO)); > > We expect that we can keep the inode in orphan list in > handle_failed_inode path when inode page have been persisted, so that if > there is anything error in evice_inode, we can have another chance to > release inode resource during next mount. > > Here we need to check this case, additionally, if we failed to add the > inode into orphan list in handle_failed_inode, we must have set > SBI_NEED_FSCK in cp pack, so we need check the case too. > > So we can change the code to: > > f2fs_bug_on(err && err != -ENOENT && > (!exist_written_data(sbi, inode->i_ino, ORPHAN_INO) || > !is_sbi_flag_set(sbi, SBI_NEED_FSCK)); Yup, I'll try this. ;) Thanks, > > How do you think? > > Thanks, > > > out_clear: > > fscrypt_put_encryption_info(inode, NULL); > > clear_inode(inode); > >