From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932278AbbIUSkA (ORCPT ); Mon, 21 Sep 2015 14:40:00 -0400 Received: from mail.kernel.org ([198.145.29.136]:40011 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756078AbbIUSj5 (ORCPT ); Mon, 21 Sep 2015 14:39:57 -0400 Date: Mon, 21 Sep 2015 11:40:02 -0700 From: Jaegeuk Kim To: Chao Yu Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/3] f2fs: introduce __try_update_largest_extent Message-ID: <20150921184002.GA20551@jaegeuk-mac02.mot.com> References: <00cb01d0f1ef$8886fc90$9994f5b0$@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <00cb01d0f1ef$8886fc90$9994f5b0$@samsung.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Chao, On Fri, Sep 18, 2015 at 04:53:07PM +0800, Chao Yu wrote: > This patch adds a new helper __try_update_largest_extent for cleanup. > > Signed-off-by: Chao Yu > --- > fs/f2fs/extent_cache.c | 14 +++++--------- > fs/f2fs/f2fs.h | 7 +++++++ > 2 files changed, 12 insertions(+), 9 deletions(-) > > diff --git a/fs/f2fs/extent_cache.c b/fs/f2fs/extent_cache.c > index c9d1cfd..31d5b48 100644 > --- a/fs/f2fs/extent_cache.c > +++ b/fs/f2fs/extent_cache.c > @@ -351,8 +351,7 @@ static struct extent_node *__try_merge_extent_node(struct f2fs_sb_info *sbi, > } > > if (en) { > - if (en->ei.len > et->largest.len) > - et->largest = en->ei; > + __try_update_largest_extent(&et->largest, &en->ei); > et->cached_en = en; > } > return en; > @@ -389,8 +388,7 @@ do_insert: > if (!en) > return NULL; > > - if (en->ei.len > et->largest.len) > - et->largest = en->ei; > + __try_update_largest_extent(&et->largest, &en->ei); > et->cached_en = en; > return en; > } > @@ -476,12 +474,10 @@ static unsigned int f2fs_update_extent_tree_range(struct inode *inode, > : NULL; > } > > - if (parts) { > - if (en->ei.len > et->largest.len) > - et->largest = en->ei; > - } else { > + if (parts) > + __try_update_largest_extent(&et->largest, &en->ei); > + else > __detach_extent_node(sbi, et, en); > - } > > /* > * if original extent is split into zero or two parts, extent > diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h > index dbceb35..3342619 100644 > --- a/fs/f2fs/f2fs.h > +++ b/fs/f2fs/f2fs.h > @@ -498,6 +498,13 @@ static inline bool __is_front_mergeable(struct extent_info *cur, > return __is_extent_mergeable(cur, front); > } > > +static inline void __try_update_largest_extent(struct extent_info *largest, > + struct extent_info *cur) How about __try_update_largest_extent(et, en) ? > +{ > + if (cur->len > largest->len) > + *largest = *cur; > +} > + > struct f2fs_nm_info { > block_t nat_blkaddr; /* base disk address of NAT */ > nid_t max_nid; /* maximum possible node ids */ > -- > 2.5.2