From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752984AbbIRIxw (ORCPT ); Fri, 18 Sep 2015 04:53:52 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:60853 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751786AbbIRIxt (ORCPT ); Fri, 18 Sep 2015 04:53:49 -0400 X-AuditID: cbfee61b-f79d56d0000048c5-01-55fbd11c4165 From: Chao Yu To: Jaegeuk Kim Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: [PATCH 1/3] f2fs: introduce __try_update_largest_extent Date: Fri, 18 Sep 2015 16:53:07 +0800 Message-id: <00cb01d0f1ef$8886fc90$9994f5b0$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-index: AdDx7nyOEZWDP17STCKvE0XvKdhSJg== Content-language: zh-cn X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrFLMWRmVeSWpSXmKPExsVy+t9jQV2Zi79DDdb9YLd4sn4Ws8WlRe4W l3fNYXNg9ti0qpPNY/eCz0wenzfJBTBHcdmkpOZklqUW6dslcGWc23iKqaCRv+LYllWMDYzf uLsYOTkkBEwk9t48ygxhi0lcuLeeDcQWEpjFKHFyqWYXIxeQ/YpR4s7t7awgCTYBFYnlHf+Z QGwRIPvQosvsIDazgIdEY8d3sBphAQeJ5efnMXYxcnCwCKhKbO1RAgnzClhK3NmynxHCFpT4 MfkeC0SrlsT6nceZIGx5ic1r3kLdoyCx4+xrRohVehKrNs2HqheX2HjkFssERqAjEUbNQjJq FpJRs5C0LGBkWcUokVqQXFCclJ5rlJdarlecmFtcmpeul5yfu4kRHMLPpHcwHt7lfohRgINR iYd3gdfvUCHWxLLiytxDjBIczEoivM9OAIV4UxIrq1KL8uOLSnNSiw8xSnOwKInzyq58Fiok kJ5YkpqdmlqQWgSTZeLglGpglLp34dDFG6FF+l13JCYVZcV9UWJ9PSXslkZHXI/b/eBHU26/ P9kjnmhw/IAad8Ce+OklP7WTE3lEM0R+TNvZn7ZG+vWy9axye5b81y87uo3lofx1x3V+d6o/ MXxr++avffaU/gn+Vf16S53yGVd+ml6a5/Iw5qs033TbE/b6kV0JX499MbsRqMRSnJFoqMVc VJwIAP4wLyddAgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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) +{ + 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