Lines Matching refs:wbc

733 static void wbc_attach_and_unlock_inode(struct writeback_control *wbc,  in wbc_attach_and_unlock_inode()  argument
742 wbc->wb = inode_to_wb(inode); in wbc_attach_and_unlock_inode()
743 wbc->inode = inode; in wbc_attach_and_unlock_inode()
745 wbc->wb_id = wbc->wb->memcg_css->id; in wbc_attach_and_unlock_inode()
746 wbc->wb_lcand_id = inode->i_wb_frn_winner; in wbc_attach_and_unlock_inode()
747 wbc->wb_tcand_id = 0; in wbc_attach_and_unlock_inode()
748 wbc->wb_bytes = 0; in wbc_attach_and_unlock_inode()
749 wbc->wb_lcand_bytes = 0; in wbc_attach_and_unlock_inode()
750 wbc->wb_tcand_bytes = 0; in wbc_attach_and_unlock_inode()
752 wb_get(wbc->wb); in wbc_attach_and_unlock_inode()
762 if (unlikely(wb_dying(wbc->wb) && !css_is_dying(wbc->wb->memcg_css))) in wbc_attach_and_unlock_inode()
763 inode_switch_wbs(inode, wbc->wb_id); in wbc_attach_and_unlock_inode()
775 void wbc_attach_fdatawrite_inode(struct writeback_control *wbc, in wbc_attach_fdatawrite_inode() argument
780 wbc_attach_and_unlock_inode(wbc, inode); in wbc_attach_fdatawrite_inode()
821 void wbc_detach_inode(struct writeback_control *wbc) in wbc_detach_inode() argument
823 struct bdi_writeback *wb = wbc->wb; in wbc_detach_inode()
824 struct inode *inode = wbc->inode; in wbc_detach_inode()
836 if (wbc->wb_bytes >= wbc->wb_lcand_bytes && in wbc_detach_inode()
837 wbc->wb_bytes >= wbc->wb_tcand_bytes) { in wbc_detach_inode()
838 max_id = wbc->wb_id; in wbc_detach_inode()
839 max_bytes = wbc->wb_bytes; in wbc_detach_inode()
840 } else if (wbc->wb_lcand_bytes >= wbc->wb_tcand_bytes) { in wbc_detach_inode()
841 max_id = wbc->wb_lcand_id; in wbc_detach_inode()
842 max_bytes = wbc->wb_lcand_bytes; in wbc_detach_inode()
844 max_id = wbc->wb_tcand_id; in wbc_detach_inode()
845 max_bytes = wbc->wb_tcand_bytes; in wbc_detach_inode()
877 if (wbc->wb_id != max_id) in wbc_detach_inode()
881 trace_inode_foreign_history(inode, wbc, history); in wbc_detach_inode()
902 wb_put(wbc->wb); in wbc_detach_inode()
903 wbc->wb = NULL; in wbc_detach_inode()
917 void wbc_account_cgroup_owner(struct writeback_control *wbc, struct folio *folio, in wbc_account_cgroup_owner() argument
929 if (!wbc->wb || wbc->no_cgroup_owner) in wbc_account_cgroup_owner()
939 if (id == wbc->wb_id) { in wbc_account_cgroup_owner()
940 wbc->wb_bytes += bytes; in wbc_account_cgroup_owner()
944 if (id == wbc->wb_lcand_id) in wbc_account_cgroup_owner()
945 wbc->wb_lcand_bytes += bytes; in wbc_account_cgroup_owner()
948 if (!wbc->wb_tcand_bytes) in wbc_account_cgroup_owner()
949 wbc->wb_tcand_id = id; in wbc_account_cgroup_owner()
950 if (id == wbc->wb_tcand_id) in wbc_account_cgroup_owner()
951 wbc->wb_tcand_bytes += bytes; in wbc_account_cgroup_owner()
953 wbc->wb_tcand_bytes -= min(bytes, wbc->wb_tcand_bytes); in wbc_account_cgroup_owner()
1245 static inline void wbc_attach_and_unlock_inode(struct writeback_control *wbc, in wbc_attach_and_unlock_inode() argument
1519 static int write_inode(struct inode *inode, struct writeback_control *wbc) in write_inode() argument
1524 trace_writeback_write_inode_start(inode, wbc); in write_inode()
1525 ret = inode->i_sb->s_op->write_inode(inode, wbc); in write_inode()
1526 trace_writeback_write_inode(inode, wbc); in write_inode()
1592 struct writeback_control *wbc, in requeue_inode() argument
1604 (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages)) in requeue_inode()
1607 if (wbc->pages_skipped) { in requeue_inode()
1626 if (wbc->nr_to_write <= 0 && in requeue_inode()
1669 __writeback_single_inode(struct inode *inode, struct writeback_control *wbc) in __writeback_single_inode() argument
1672 long nr_to_write = wbc->nr_to_write; in __writeback_single_inode()
1678 trace_writeback_single_inode_start(inode, wbc, nr_to_write); in __writeback_single_inode()
1680 ret = do_writepages(mapping, wbc); in __writeback_single_inode()
1689 if (wbc->sync_mode == WB_SYNC_ALL && !wbc->for_sync) { in __writeback_single_inode()
1701 (wbc->sync_mode == WB_SYNC_ALL || in __writeback_single_inode()
1736 wbc->unpinned_netfs_wb = true; in __writeback_single_inode()
1745 int err = write_inode(inode, wbc); in __writeback_single_inode()
1749 wbc->unpinned_netfs_wb = false; in __writeback_single_inode()
1750 trace_writeback_single_inode(inode, wbc, nr_to_write); in __writeback_single_inode()
1764 struct writeback_control *wbc) in writeback_single_inode() argument
1782 if (wbc->sync_mode != WB_SYNC_ALL) in writeback_single_inode()
1795 (wbc->sync_mode != WB_SYNC_ALL || in writeback_single_inode()
1799 wbc_attach_and_unlock_inode(wbc, inode); in writeback_single_inode()
1801 ret = __writeback_single_inode(inode, wbc); in writeback_single_inode()
1803 wbc_detach_inode(wbc); in writeback_single_inode()
1882 struct writeback_control wbc = { in writeback_sb_inodes() local
1936 if ((inode->i_state & I_SYNC) && wbc.sync_mode != WB_SYNC_ALL) { in writeback_sb_inodes()
1966 wbc_attach_and_unlock_inode(&wbc, inode); in writeback_sb_inodes()
1969 wbc.nr_to_write = write_chunk; in writeback_sb_inodes()
1970 wbc.pages_skipped = 0; in writeback_sb_inodes()
1976 __writeback_single_inode(inode, &wbc); in writeback_sb_inodes()
1978 wbc_detach_inode(&wbc); in writeback_sb_inodes()
1979 work->nr_pages -= write_chunk - wbc.nr_to_write; in writeback_sb_inodes()
1980 wrote = write_chunk - wbc.nr_to_write - wbc.pages_skipped; in writeback_sb_inodes()
2005 requeue_inode(inode, tmp_wb, &wbc, dirtied_before); in writeback_sb_inodes()
2840 struct writeback_control wbc = { in write_inode_now() local
2848 wbc.nr_to_write = 0; in write_inode_now()
2851 return writeback_single_inode(inode, &wbc); in write_inode_now()
2866 struct writeback_control wbc = { in sync_inode_metadata() local
2871 return writeback_single_inode(inode, &wbc); in sync_inode_metadata()