summaryrefslogtreecommitdiffstats
path: root/fs/f2fs/node.c
diff options
context:
space:
mode:
authorJaegeuk Kim2014-12-18 04:33:13 +0100
committerJaegeuk Kim2015-01-10 02:02:23 +0100
commitcf04e8eb55290c7b836c36f0b4e1a8d0fe8ee275 (patch)
tree077ddb41b1d4eec5f4987efa1aa7e1bca021727d /fs/f2fs/node.c
parentf2fs: use ra_meta_pages to simplify readahead code in restore_node_summary (diff)
downloadkernel-qcow2-linux-cf04e8eb55290c7b836c36f0b4e1a8d0fe8ee275.tar.gz
kernel-qcow2-linux-cf04e8eb55290c7b836c36f0b4e1a8d0fe8ee275.tar.xz
kernel-qcow2-linux-cf04e8eb55290c7b836c36f0b4e1a8d0fe8ee275.zip
f2fs: use f2fs_io_info to clean up messy parameters during IO path
This patch cleans up parameters on IO paths. The key idea is to use f2fs_io_info adding a parameter, block address, and then use this structure as parameters. Reviewed-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/node.c')
-rw-r--r--fs/f2fs/node.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index bcfd67c80196..adc35c978306 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -977,6 +977,10 @@ static int read_node_page(struct page *page, int rw)
{
struct f2fs_sb_info *sbi = F2FS_P_SB(page);
struct node_info ni;
+ struct f2fs_io_info fio = {
+ .type = NODE,
+ .rw = rw,
+ };
get_node_info(sbi, page->index, &ni);
@@ -988,7 +992,8 @@ static int read_node_page(struct page *page, int rw)
if (PageUptodate(page))
return LOCKED_PAGE;
- return f2fs_submit_page_bio(sbi, page, ni.blk_addr, rw);
+ fio.blk_addr = ni.blk_addr;
+ return f2fs_submit_page_bio(sbi, page, &fio);
}
/*
@@ -1269,7 +1274,6 @@ static int f2fs_write_node_page(struct page *page,
{
struct f2fs_sb_info *sbi = F2FS_P_SB(page);
nid_t nid;
- block_t new_addr;
struct node_info ni;
struct f2fs_io_info fio = {
.type = NODE,
@@ -1304,9 +1308,11 @@ static int f2fs_write_node_page(struct page *page,
} else {
down_read(&sbi->node_write);
}
+
set_page_writeback(page);
- write_node_page(sbi, page, &fio, nid, ni.blk_addr, &new_addr);
- set_node_addr(sbi, &ni, new_addr, is_fsync_dnode(page));
+ fio.blk_addr = ni.blk_addr;
+ write_node_page(sbi, page, nid, &fio);
+ set_node_addr(sbi, &ni, fio.blk_addr, is_fsync_dnode(page));
dec_page_count(sbi, F2FS_DIRTY_NODES);
up_read(&sbi->node_write);
unlock_page(page);