On Tue, Nov 18, 2014 at 01:30:46PM +0800, Chao Yu wrote: > Hi Jaegeuk, > > > -----Original Message----- > > From: Jaegeuk Kim [mailto:jaegeuk@xxxxxxxxxx] > > Sent: Tuesday, November 18, 2014 9:58 AM > > To: linux-kernel@xxxxxxxxxxxxxxx; linux-fsdevel@xxxxxxxxxxxxxxx; > > linux-f2fs-devel@xxxxxxxxxxxxxxxxxxxxx > > Cc: Jaegeuk Kim > > Subject: [f2fs-dev] [PATCH 2/2] f2fs: put the inode page when error was occurred > > > > We should put the inode page when error was occurred. > > > > Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx> > > You can add Reviewed-by: Chao Yu <chao2.yu@xxxxxxxxxxx> > after the following issue is fixed. > > > --- > > fs/f2fs/data.c | 10 ++++++---- > > 1 file changed, 6 insertions(+), 4 deletions(-) > > > > diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c > > index 8f16443..12dd58a 100644 > > --- a/fs/f2fs/data.c > > +++ b/fs/f2fs/data.c > > @@ -963,22 +963,22 @@ repeat: > > } else if (page->index == 0) { > > err = f2fs_convert_inline_page(&dn, page); > > if (err) > > - goto unlock_fail; > > + goto put_fail; > > } else { > > struct page *p = grab_cache_page(inode->i_mapping, 0); > > if (!p) { > > err = -ENOMEM; > > - goto unlock_fail; > > + goto put_fail; > > } > > err = f2fs_convert_inline_page(&dn, p); > > f2fs_put_page(p, 1); > > if (err) > > - goto unlock_fail; > > + goto put_fail; > > } > > } > > err = f2fs_reserve_block(&dn, index); > > if (err) > > - goto unlock_fail; > > + goto put_fail; > > f2fs_reserve_block will do the clean work, we should not release dn again. Well, I added this to handle errors consistently. It's harmless, since f2fs_put_dnode removes the pointers after putting them. Thanks, > > Thanks, > Yu > > > put_next: > > f2fs_put_dnode(&dn); > > f2fs_unlock_op(sbi); > > @@ -1021,6 +1021,8 @@ out: > > clear_cold_data(page); > > return 0; > > > > +put_fail: > > + f2fs_put_dnode(&dn); > > unlock_fail: > > f2fs_unlock_op(sbi); > > f2fs_put_page(page, 1); > > -- > > 2.1.1 > > > > > > ------------------------------------------------------------------------------ > > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > > with Interactivity, Sharing, Native Excel Exports, App Integration & more > > Get technology previously reserved for billion-dollar corporations, FREE > > http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk > > _______________________________________________ > > Linux-f2fs-devel mailing list > > Linux-f2fs-devel@xxxxxxxxxxxxxxxxxxxxx > > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html