From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753891AbbE1LQc (ORCPT ); Thu, 28 May 2015 07:16:32 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:28942 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752201AbbE1LQX (ORCPT ); Thu, 28 May 2015 07:16:23 -0400 X-AuditID: cbfee61b-f79416d0000014c0-e3-5566f905a055 From: Chao Yu To: Jaegeuk Kim , Changman Lee Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] f2fs: hide common code in f2fs_replace_block Date: Thu, 28 May 2015 19:15:35 +0800 Message-id: <007501d09937$b7c64620$2752d260$@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: AdCYXDYfldB7VLk2T9GtLXzJPLwKEQ== Content-language: zh-cn X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrELMWRmVeSWpSXmKPExsVy+t9jQV3Wn2mhBr0rbSyu7Wtksniyfhaz xaVF7haXd81hc2Dx2LSqk81j94LPTB59W1YxenzeJBfAEsVlk5Kak1mWWqRvl8CVcXHtO5aC NsWKBfMbWRsYe6W7GDk5JARMJOY8P8UCYYtJXLi3ng3EFhKYzijx535hFyMXkP2KUeLMhPVg RWwCKhLLO/4zgdgiAl4Sk/afAIszC3hINHZ8ZwWxhQUcJfo+doPFWQRUJf6svgMW5xWwlDj5 qw/KFpT4MfkeVK+WxPqdx5kgbHmJzWveMkMcpCCx4+xrRohdehKn2+ewQtSIS2w8cotlAqPA LCSjZiEZNQvJqFlIWhYwsqxiFE0tSC4oTkrPNdIrTswtLs1L10vOz93ECA7pZ9I7GFc1WBxi FOBgVOLhVZiTFirEmlhWXJl7iFGCg1lJhHfVHaAQb0piZVVqUX58UWlOavEhRmkOFiVx3pP5 PqFCAumJJanZqakFqUUwWSYOTqkGRtPKKzl3BKsjVs8z4s/v3Go4zW5D5eOzkRrNS+esk3Rp YI/3XMrVcvTcnaLu1vD9K2f9yBSylFpm224tvzki6HrdgZyz2cc5plRMMOHev/yt2OREYcFp W6+0it293MdZ82peqKHEw9fvXhWL/2jKvm66coW0heSE3aXca+odrFkPzP310mq2kRJLcUai oRZzUXEiAPi9DVdlAgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch clean up codes through: 1.rename f2fs_replace_block to __f2fs_replace_block(). 2.introduce new f2fs_replace_block() to include __f2fs_replace_block() and some common related codes around __f2fs_replace_block(). Then, newly introduced function f2fs_replace_block can be used by following patch. Signed-off-by: Chao Yu --- fs/f2fs/f2fs.h | 4 ++-- fs/f2fs/file.c | 12 ++---------- fs/f2fs/recovery.c | 9 ++------- fs/f2fs/segment.c | 17 ++++++++++++++++- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 70cdf7b..1a0716c 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -1695,8 +1695,8 @@ void write_meta_page(struct f2fs_sb_info *, struct page *); void write_node_page(unsigned int, struct f2fs_io_info *); void write_data_page(struct dnode_of_data *, struct f2fs_io_info *); void rewrite_data_page(struct f2fs_io_info *); -void f2fs_replace_block(struct f2fs_sb_info *, struct f2fs_summary *, - block_t, block_t, bool); +void f2fs_replace_block(struct f2fs_sb_info *, struct dnode_of_data *, + block_t, block_t, unsigned char, bool); void allocate_data_block(struct f2fs_sb_info *, struct page *, block_t, block_t *, struct f2fs_summary *, int); void f2fs_wait_on_page_writeback(struct page *, enum page_type); diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 6b4ba74..aec96d3 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -854,18 +854,10 @@ static int f2fs_do_collapse(struct inode *inode, pgoff_t start, pgoff_t end) set_data_blkaddr(&dn); } else if (new_addr != NEW_ADDR) { struct node_info ni; - struct f2fs_summary sum; get_node_info(sbi, dn.nid, &ni); - set_summary(&sum, dn.nid, dn.ofs_in_node, - ni.version); - - f2fs_replace_block(sbi, &sum, old_addr, - new_addr, true); - - dn.data_blkaddr = new_addr; - set_data_blkaddr(&dn); - f2fs_update_extent_cache(&dn); + f2fs_replace_block(sbi, &dn, old_addr, new_addr, + ni.version, true); } f2fs_put_dnode(&dn); diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c index 9de2587..24a8c1d 100644 --- a/fs/f2fs/recovery.c +++ b/fs/f2fs/recovery.c @@ -360,7 +360,6 @@ static int do_recover_data(struct f2fs_sb_info *sbi, struct inode *inode, struct f2fs_inode_info *fi = F2FS_I(inode); unsigned int start, end; struct dnode_of_data dn; - struct f2fs_summary sum; struct node_info ni; int err = 0, recovered = 0; @@ -420,13 +419,9 @@ static int do_recover_data(struct f2fs_sb_info *sbi, struct inode *inode, if (err) goto err; - set_summary(&sum, dn.nid, dn.ofs_in_node, ni.version); - /* write dummy data page */ - f2fs_replace_block(sbi, &sum, src, dest, false); - dn.data_blkaddr = dest; - set_data_blkaddr(&dn); - f2fs_update_extent_cache(&dn); + f2fs_replace_block(sbi, &dn, src, dest, + ni.version, false); recovered++; } dn.ofs_in_node++; diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 492c59e..5545468 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -1302,7 +1302,7 @@ void rewrite_data_page(struct f2fs_io_info *fio) f2fs_submit_page_mbio(fio); } -void f2fs_replace_block(struct f2fs_sb_info *sbi, struct f2fs_summary *sum, +void __f2fs_replace_block(struct f2fs_sb_info *sbi, struct f2fs_summary *sum, block_t old_blkaddr, block_t new_blkaddr, bool recover_curseg) { @@ -1362,6 +1362,21 @@ void f2fs_replace_block(struct f2fs_sb_info *sbi, struct f2fs_summary *sum, mutex_unlock(&curseg->curseg_mutex); } +void f2fs_replace_block(struct f2fs_sb_info *sbi, struct dnode_of_data *dn, + block_t old_addr, block_t new_addr, + unsigned char version, bool recover_curseg) +{ + struct f2fs_summary sum; + + set_summary(&sum, dn->nid, dn->ofs_in_node, version); + + __f2fs_replace_block(sbi, &sum, old_addr, new_addr, recover_curseg); + + dn->data_blkaddr = new_addr; + set_data_blkaddr(dn); + f2fs_update_extent_cache(dn); +} + static inline bool is_merged_page(struct f2fs_sb_info *sbi, struct page *page, enum page_type type) { -- 2.3.3