Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 528e3459 authored by Chao Yu's avatar Chao Yu Committed by Jaegeuk Kim
Browse files

f2fs: hide common code in f2fs_replace_block



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: default avatarChao Yu <chao2.yu@samsung.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 96c6dd59
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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);
+2 −10
Original line number Diff line number Diff line
@@ -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);
+2 −7
Original line number Diff line number Diff line
@@ -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++;
+17 −1
Original line number Diff line number Diff line
@@ -1302,7 +1302,8 @@ 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,
static 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 +1363,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)
{