f2fs: should check the node page was truncated first
Currently, f2fs doesn't reclaim any node pages. However, if we found that a node page was truncated by checking its block address with zero during f2fs_write_node_page, we should not skip that node page and return zero to reclaim it. Reviewed-by: Namjae Jeon <namjae.jeon@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
This commit is contained in:
parent
393ff91f57
commit
08d8058be6
1 changed files with 8 additions and 7 deletions
|
@ -1097,13 +1097,6 @@ static int f2fs_write_node_page(struct page *page,
|
|||
block_t new_addr;
|
||||
struct node_info ni;
|
||||
|
||||
if (wbc->for_reclaim) {
|
||||
dec_page_count(sbi, F2FS_DIRTY_NODES);
|
||||
wbc->pages_skipped++;
|
||||
set_page_dirty(page);
|
||||
return AOP_WRITEPAGE_ACTIVATE;
|
||||
}
|
||||
|
||||
wait_on_page_writeback(page);
|
||||
|
||||
mutex_lock_op(sbi, NODE_WRITE);
|
||||
|
@ -1118,6 +1111,14 @@ static int f2fs_write_node_page(struct page *page,
|
|||
if (ni.blk_addr == NULL_ADDR)
|
||||
goto out;
|
||||
|
||||
if (wbc->for_reclaim) {
|
||||
dec_page_count(sbi, F2FS_DIRTY_NODES);
|
||||
wbc->pages_skipped++;
|
||||
set_page_dirty(page);
|
||||
mutex_unlock_op(sbi, NODE_WRITE);
|
||||
return AOP_WRITEPAGE_ACTIVATE;
|
||||
}
|
||||
|
||||
set_page_writeback(page);
|
||||
|
||||
/* insert node offset */
|
||||
|
|
Loading…
Add table
Reference in a new issue