From mboxrd@z Thu Jan 1 00:00:00 1970 From: Namjae Jeon Subject: Re: [PATCH 1/4] f2fs: fix the recovery flow to handle errors correctly Date: Mon, 25 Mar 2013 15:30:16 +0900 Message-ID: References: <1364168414-12815-1-git-send-email-jaegeuk.kim@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net To: Jaegeuk Kim Return-path: In-Reply-To: <1364168414-12815-1-git-send-email-jaegeuk.kim@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org 2013/3/25, Jaegeuk Kim : > We should handle errors during the recovery flow correctly. > For example, if we get -ENOMEM, we should report a mount failure instead of > conducting the remained mount procedure. > > Signed-off-by: Jaegeuk Kim > --- > fs/f2fs/f2fs.h | 2 +- > fs/f2fs/recovery.c | 46 ++++++++++++++++++++++++++++------------------ > fs/f2fs/super.c | 9 +++++++-- > 3 files changed, 36 insertions(+), 21 deletions(-) > > diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h > index 5bb87e0..109e12d 100644 > --- a/fs/f2fs/f2fs.h > +++ b/fs/f2fs/f2fs.h > @@ -1027,7 +1027,7 @@ void destroy_gc_caches(void); > /* > * recovery.c > */ > -void recover_fsync_data(struct f2fs_sb_info *); > +int recover_fsync_data(struct f2fs_sb_info *); > bool space_for_roll_forward(struct f2fs_sb_info *); > > /* > diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c > index 2d86eb2..61bdaa7 100644 > --- a/fs/f2fs/recovery.c > +++ b/fs/f2fs/recovery.c > @@ -118,10 +118,8 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, > struct list_head *head) > > lock_page(page); > Hi Jaegeuk. I have a question. > - if (cp_ver != cpver_of_node(page)) { > - err = -EINVAL; > + if (cp_ver != cpver_of_node(page)) > goto unlock_out; > - } err = 0 is initialized to zero in the start of function Why have you remove err = -EINVAL; code when mismatching cp_ver ? Thanks. >