@@ -1651,7 +1651,7 @@ static struct folio *last_fsync_dnode(struct f2fs_sb_info *sbi, nid_t ino)
1651
1651
return last_folio ;
1652
1652
}
1653
1653
1654
- static int __write_node_folio (struct folio * folio , bool atomic , bool * submitted ,
1654
+ static bool __write_node_folio (struct folio * folio , bool atomic , bool * submitted ,
1655
1655
struct writeback_control * wbc , bool do_balance ,
1656
1656
enum iostat_type io_type , unsigned int * seq_id )
1657
1657
{
@@ -1681,7 +1681,7 @@ static int __write_node_folio(struct folio *folio, bool atomic, bool *submitted,
1681
1681
folio_clear_uptodate (folio );
1682
1682
dec_page_count (sbi , F2FS_DIRTY_NODES );
1683
1683
folio_unlock (folio );
1684
- return 0 ;
1684
+ return true ;
1685
1685
}
1686
1686
1687
1687
if (unlikely (is_sbi_flag_set (sbi , SBI_POR_DOING )))
@@ -1707,7 +1707,7 @@ static int __write_node_folio(struct folio *folio, bool atomic, bool *submitted,
1707
1707
dec_page_count (sbi , F2FS_DIRTY_NODES );
1708
1708
f2fs_up_read (& sbi -> node_write );
1709
1709
folio_unlock (folio );
1710
- return 0 ;
1710
+ return true ;
1711
1711
}
1712
1712
1713
1713
if (__is_valid_data_blkaddr (ni .blk_addr ) &&
@@ -1746,11 +1746,12 @@ static int __write_node_folio(struct folio *folio, bool atomic, bool *submitted,
1746
1746
1747
1747
if (do_balance )
1748
1748
f2fs_balance_fs (sbi , false);
1749
- return 0 ;
1749
+ return true ;
1750
1750
1751
1751
redirty_out :
1752
1752
folio_redirty_for_writepage (wbc , folio );
1753
- return AOP_WRITEPAGE_ACTIVATE ;
1753
+ folio_unlock (folio );
1754
+ return false;
1754
1755
}
1755
1756
1756
1757
int f2fs_move_node_folio (struct folio * node_folio , int gc_type )
@@ -1772,11 +1773,9 @@ int f2fs_move_node_folio(struct folio *node_folio, int gc_type)
1772
1773
goto out_page ;
1773
1774
}
1774
1775
1775
- if (__write_node_folio (node_folio , false, NULL ,
1776
- & wbc , false, FS_GC_NODE_IO , NULL )) {
1776
+ if (! __write_node_folio (node_folio , false, NULL ,
1777
+ & wbc , false, FS_GC_NODE_IO , NULL ))
1777
1778
err = - EAGAIN ;
1778
- folio_unlock (node_folio );
1779
- }
1780
1779
goto release_page ;
1781
1780
} else {
1782
1781
/* set page dirty and write it */
@@ -1871,11 +1870,10 @@ int f2fs_fsync_node_pages(struct f2fs_sb_info *sbi, struct inode *inode,
1871
1870
if (!folio_clear_dirty_for_io (folio ))
1872
1871
goto continue_unlock ;
1873
1872
1874
- if (__write_node_folio (folio , atomic &&
1873
+ if (! __write_node_folio (folio , atomic &&
1875
1874
folio == last_folio ,
1876
1875
& submitted , wbc , true,
1877
1876
FS_NODE_IO , seq_id )) {
1878
- folio_unlock (folio );
1879
1877
f2fs_folio_put (last_folio , false);
1880
1878
folio_batch_release (& fbatch );
1881
1879
ret = - EIO ;
@@ -2078,16 +2076,15 @@ int f2fs_sync_node_pages(struct f2fs_sb_info *sbi,
2078
2076
set_fsync_mark (& folio -> page , 0 );
2079
2077
set_dentry_mark (& folio -> page , 0 );
2080
2078
2081
- ret = __write_node_folio (folio , false, & submitted ,
2082
- wbc , do_balance , io_type , NULL );
2083
- if (ret ) {
2079
+ if (!__write_node_folio (folio , false, & submitted ,
2080
+ wbc , do_balance , io_type , NULL )) {
2084
2081
folio_unlock (folio );
2085
2082
folio_batch_release (& fbatch );
2086
2083
ret = - EIO ;
2087
2084
goto out ;
2088
- } else if (submitted ) {
2089
- nwritten ++ ;
2090
2085
}
2086
+ if (submitted )
2087
+ nwritten ++ ;
2091
2088
2092
2089
if (-- wbc -> nr_to_write == 0 )
2093
2090
break ;
0 commit comments