@@ -2940,11 +2940,10 @@ static void wb_inode_writeback_end(struct bdi_writeback *wb)
2940
2940
spin_unlock_irqrestore (& wb -> work_lock , flags );
2941
2941
}
2942
2942
2943
- bool __folio_end_writeback (struct folio * folio )
2943
+ void __folio_end_writeback (struct folio * folio )
2944
2944
{
2945
2945
long nr = folio_nr_pages (folio );
2946
2946
struct address_space * mapping = folio_mapping (folio );
2947
- bool ret ;
2948
2947
2949
2948
folio_memcg_lock (folio );
2950
2949
if (mapping && mapping_use_writeback_tags (mapping )) {
@@ -2953,19 +2952,16 @@ bool __folio_end_writeback(struct folio *folio)
2953
2952
unsigned long flags ;
2954
2953
2955
2954
xa_lock_irqsave (& mapping -> i_pages , flags );
2956
- ret = folio_test_clear_writeback (folio );
2957
- if (ret ) {
2958
- __xa_clear_mark (& mapping -> i_pages , folio_index (folio ),
2959
- PAGECACHE_TAG_WRITEBACK );
2960
- if (bdi -> capabilities & BDI_CAP_WRITEBACK_ACCT ) {
2961
- struct bdi_writeback * wb = inode_to_wb (inode );
2962
-
2963
- wb_stat_mod (wb , WB_WRITEBACK , - nr );
2964
- __wb_writeout_add (wb , nr );
2965
- if (!mapping_tagged (mapping ,
2966
- PAGECACHE_TAG_WRITEBACK ))
2967
- wb_inode_writeback_end (wb );
2968
- }
2955
+ folio_test_clear_writeback (folio );
2956
+ __xa_clear_mark (& mapping -> i_pages , folio_index (folio ),
2957
+ PAGECACHE_TAG_WRITEBACK );
2958
+ if (bdi -> capabilities & BDI_CAP_WRITEBACK_ACCT ) {
2959
+ struct bdi_writeback * wb = inode_to_wb (inode );
2960
+
2961
+ wb_stat_mod (wb , WB_WRITEBACK , - nr );
2962
+ __wb_writeout_add (wb , nr );
2963
+ if (!mapping_tagged (mapping , PAGECACHE_TAG_WRITEBACK ))
2964
+ wb_inode_writeback_end (wb );
2969
2965
}
2970
2966
2971
2967
if (mapping -> host && !mapping_tagged (mapping ,
@@ -2974,15 +2970,13 @@ bool __folio_end_writeback(struct folio *folio)
2974
2970
2975
2971
xa_unlock_irqrestore (& mapping -> i_pages , flags );
2976
2972
} else {
2977
- ret = folio_test_clear_writeback (folio );
2978
- }
2979
- if (ret ) {
2980
- lruvec_stat_mod_folio (folio , NR_WRITEBACK , - nr );
2981
- zone_stat_mod_folio (folio , NR_ZONE_WRITE_PENDING , - nr );
2982
- node_stat_mod_folio (folio , NR_WRITTEN , nr );
2973
+ folio_test_clear_writeback (folio );
2983
2974
}
2975
+
2976
+ lruvec_stat_mod_folio (folio , NR_WRITEBACK , - nr );
2977
+ zone_stat_mod_folio (folio , NR_ZONE_WRITE_PENDING , - nr );
2978
+ node_stat_mod_folio (folio , NR_WRITTEN , nr );
2984
2979
folio_memcg_unlock (folio );
2985
- return ret ;
2986
2980
}
2987
2981
2988
2982
bool __folio_start_writeback (struct folio * folio , bool keep_write )
0 commit comments