Lines Matching refs:wbc
693 void wbc_attach_and_unlock_inode(struct writeback_control *wbc, in wbc_attach_and_unlock_inode() argument
701 wbc->wb = inode_to_wb(inode); in wbc_attach_and_unlock_inode()
702 wbc->inode = inode; in wbc_attach_and_unlock_inode()
704 wbc->wb_id = wbc->wb->memcg_css->id; in wbc_attach_and_unlock_inode()
705 wbc->wb_lcand_id = inode->i_wb_frn_winner; in wbc_attach_and_unlock_inode()
706 wbc->wb_tcand_id = 0; in wbc_attach_and_unlock_inode()
707 wbc->wb_bytes = 0; in wbc_attach_and_unlock_inode()
708 wbc->wb_lcand_bytes = 0; in wbc_attach_and_unlock_inode()
709 wbc->wb_tcand_bytes = 0; in wbc_attach_and_unlock_inode()
711 wb_get(wbc->wb); in wbc_attach_and_unlock_inode()
721 if (unlikely(wb_dying(wbc->wb) && !css_is_dying(wbc->wb->memcg_css))) in wbc_attach_and_unlock_inode()
722 inode_switch_wbs(inode, wbc->wb_id); in wbc_attach_and_unlock_inode()
763 void wbc_detach_inode(struct writeback_control *wbc) in wbc_detach_inode() argument
765 struct bdi_writeback *wb = wbc->wb; in wbc_detach_inode()
766 struct inode *inode = wbc->inode; in wbc_detach_inode()
778 if (wbc->wb_bytes >= wbc->wb_lcand_bytes && in wbc_detach_inode()
779 wbc->wb_bytes >= wbc->wb_tcand_bytes) { in wbc_detach_inode()
780 max_id = wbc->wb_id; in wbc_detach_inode()
781 max_bytes = wbc->wb_bytes; in wbc_detach_inode()
782 } else if (wbc->wb_lcand_bytes >= wbc->wb_tcand_bytes) { in wbc_detach_inode()
783 max_id = wbc->wb_lcand_id; in wbc_detach_inode()
784 max_bytes = wbc->wb_lcand_bytes; in wbc_detach_inode()
786 max_id = wbc->wb_tcand_id; in wbc_detach_inode()
787 max_bytes = wbc->wb_tcand_bytes; in wbc_detach_inode()
819 if (wbc->wb_id != max_id) in wbc_detach_inode()
823 trace_inode_foreign_history(inode, wbc, history); in wbc_detach_inode()
844 wb_put(wbc->wb); in wbc_detach_inode()
845 wbc->wb = NULL; in wbc_detach_inode()
859 void wbc_account_cgroup_owner(struct writeback_control *wbc, struct page *page, in wbc_account_cgroup_owner() argument
872 if (!wbc->wb || wbc->no_cgroup_owner) in wbc_account_cgroup_owner()
883 if (id == wbc->wb_id) { in wbc_account_cgroup_owner()
884 wbc->wb_bytes += bytes; in wbc_account_cgroup_owner()
888 if (id == wbc->wb_lcand_id) in wbc_account_cgroup_owner()
889 wbc->wb_lcand_bytes += bytes; in wbc_account_cgroup_owner()
892 if (!wbc->wb_tcand_bytes) in wbc_account_cgroup_owner()
893 wbc->wb_tcand_id = id; in wbc_account_cgroup_owner()
894 if (id == wbc->wb_tcand_id) in wbc_account_cgroup_owner()
895 wbc->wb_tcand_bytes += bytes; in wbc_account_cgroup_owner()
897 wbc->wb_tcand_bytes -= min(bytes, wbc->wb_tcand_bytes); in wbc_account_cgroup_owner()
1450 static int write_inode(struct inode *inode, struct writeback_control *wbc) in write_inode() argument
1455 trace_writeback_write_inode_start(inode, wbc); in write_inode()
1456 ret = inode->i_sb->s_op->write_inode(inode, wbc); in write_inode()
1457 trace_writeback_write_inode(inode, wbc); in write_inode()
1522 struct writeback_control *wbc) in requeue_inode() argument
1533 (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages)) in requeue_inode()
1536 if (wbc->pages_skipped) { in requeue_inode()
1555 if (wbc->nr_to_write <= 0) { in requeue_inode()
1597 __writeback_single_inode(struct inode *inode, struct writeback_control *wbc) in __writeback_single_inode() argument
1600 long nr_to_write = wbc->nr_to_write; in __writeback_single_inode()
1606 trace_writeback_single_inode_start(inode, wbc, nr_to_write); in __writeback_single_inode()
1608 ret = do_writepages(mapping, wbc); in __writeback_single_inode()
1617 if (wbc->sync_mode == WB_SYNC_ALL && !wbc->for_sync) { in __writeback_single_inode()
1629 (wbc->sync_mode == WB_SYNC_ALL || in __writeback_single_inode()
1664 wbc->unpinned_fscache_wb = true; in __writeback_single_inode()
1673 int err = write_inode(inode, wbc); in __writeback_single_inode()
1677 wbc->unpinned_fscache_wb = false; in __writeback_single_inode()
1678 trace_writeback_single_inode(inode, wbc, nr_to_write); in __writeback_single_inode()
1692 struct writeback_control *wbc) in writeback_single_inode() argument
1710 if (wbc->sync_mode != WB_SYNC_ALL) in writeback_single_inode()
1723 (wbc->sync_mode != WB_SYNC_ALL || in writeback_single_inode()
1727 wbc_attach_and_unlock_inode(wbc, inode); in writeback_single_inode()
1729 ret = __writeback_single_inode(inode, wbc); in writeback_single_inode()
1731 wbc_detach_inode(wbc); in writeback_single_inode()
1810 struct writeback_control wbc = { in writeback_sb_inodes() local
1859 if ((inode->i_state & I_SYNC) && wbc.sync_mode != WB_SYNC_ALL) { in writeback_sb_inodes()
1889 wbc_attach_and_unlock_inode(&wbc, inode); in writeback_sb_inodes()
1892 wbc.nr_to_write = write_chunk; in writeback_sb_inodes()
1893 wbc.pages_skipped = 0; in writeback_sb_inodes()
1899 __writeback_single_inode(inode, &wbc); in writeback_sb_inodes()
1901 wbc_detach_inode(&wbc); in writeback_sb_inodes()
1902 work->nr_pages -= write_chunk - wbc.nr_to_write; in writeback_sb_inodes()
1903 wrote = write_chunk - wbc.nr_to_write - wbc.pages_skipped; in writeback_sb_inodes()
1928 requeue_inode(inode, tmp_wb, &wbc); in writeback_sb_inodes()
2760 struct writeback_control wbc = { in write_inode_now() local
2768 wbc.nr_to_write = 0; in write_inode_now()
2771 return writeback_single_inode(inode, &wbc); in write_inode_now()
2786 struct writeback_control wbc = { in sync_inode_metadata() local
2791 return writeback_single_inode(inode, &wbc); in sync_inode_metadata()