Lines Matching refs:wbc
558 void wbc_attach_and_unlock_inode(struct writeback_control *wbc, in wbc_attach_and_unlock_inode() argument
566 wbc->wb = inode_to_wb(inode); in wbc_attach_and_unlock_inode()
567 wbc->inode = inode; in wbc_attach_and_unlock_inode()
569 wbc->wb_id = wbc->wb->memcg_css->id; in wbc_attach_and_unlock_inode()
570 wbc->wb_lcand_id = inode->i_wb_frn_winner; in wbc_attach_and_unlock_inode()
571 wbc->wb_tcand_id = 0; in wbc_attach_and_unlock_inode()
572 wbc->wb_bytes = 0; in wbc_attach_and_unlock_inode()
573 wbc->wb_lcand_bytes = 0; in wbc_attach_and_unlock_inode()
574 wbc->wb_tcand_bytes = 0; in wbc_attach_and_unlock_inode()
576 wb_get(wbc->wb); in wbc_attach_and_unlock_inode()
586 if (unlikely(wb_dying(wbc->wb) && !css_is_dying(wbc->wb->memcg_css))) in wbc_attach_and_unlock_inode()
587 inode_switch_wbs(inode, wbc->wb_id); in wbc_attach_and_unlock_inode()
628 void wbc_detach_inode(struct writeback_control *wbc) in wbc_detach_inode() argument
630 struct bdi_writeback *wb = wbc->wb; in wbc_detach_inode()
631 struct inode *inode = wbc->inode; in wbc_detach_inode()
643 if (wbc->wb_bytes >= wbc->wb_lcand_bytes && in wbc_detach_inode()
644 wbc->wb_bytes >= wbc->wb_tcand_bytes) { in wbc_detach_inode()
645 max_id = wbc->wb_id; in wbc_detach_inode()
646 max_bytes = wbc->wb_bytes; in wbc_detach_inode()
647 } else if (wbc->wb_lcand_bytes >= wbc->wb_tcand_bytes) { in wbc_detach_inode()
648 max_id = wbc->wb_lcand_id; in wbc_detach_inode()
649 max_bytes = wbc->wb_lcand_bytes; in wbc_detach_inode()
651 max_id = wbc->wb_tcand_id; in wbc_detach_inode()
652 max_bytes = wbc->wb_tcand_bytes; in wbc_detach_inode()
684 if (wbc->wb_id != max_id) in wbc_detach_inode()
688 trace_inode_foreign_history(inode, wbc, history); in wbc_detach_inode()
709 wb_put(wbc->wb); in wbc_detach_inode()
710 wbc->wb = NULL; in wbc_detach_inode()
724 void wbc_account_cgroup_owner(struct writeback_control *wbc, struct page *page, in wbc_account_cgroup_owner() argument
736 if (!wbc->wb || wbc->no_cgroup_owner) in wbc_account_cgroup_owner()
746 if (id == wbc->wb_id) { in wbc_account_cgroup_owner()
747 wbc->wb_bytes += bytes; in wbc_account_cgroup_owner()
751 if (id == wbc->wb_lcand_id) in wbc_account_cgroup_owner()
752 wbc->wb_lcand_bytes += bytes; in wbc_account_cgroup_owner()
755 if (!wbc->wb_tcand_bytes) in wbc_account_cgroup_owner()
756 wbc->wb_tcand_id = id; in wbc_account_cgroup_owner()
757 if (id == wbc->wb_tcand_id) in wbc_account_cgroup_owner()
758 wbc->wb_tcand_bytes += bytes; in wbc_account_cgroup_owner()
760 wbc->wb_tcand_bytes -= min(bytes, wbc->wb_tcand_bytes); in wbc_account_cgroup_owner()
1314 static int write_inode(struct inode *inode, struct writeback_control *wbc) in write_inode() argument
1319 trace_writeback_write_inode_start(inode, wbc); in write_inode()
1320 ret = inode->i_sb->s_op->write_inode(inode, wbc); in write_inode()
1321 trace_writeback_write_inode(inode, wbc); in write_inode()
1386 struct writeback_control *wbc) in requeue_inode() argument
1397 (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages)) in requeue_inode()
1400 if (wbc->pages_skipped) { in requeue_inode()
1414 if (wbc->nr_to_write <= 0) { in requeue_inode()
1450 __writeback_single_inode(struct inode *inode, struct writeback_control *wbc) in __writeback_single_inode() argument
1453 long nr_to_write = wbc->nr_to_write; in __writeback_single_inode()
1459 trace_writeback_single_inode_start(inode, wbc, nr_to_write); in __writeback_single_inode()
1461 ret = do_writepages(mapping, wbc); in __writeback_single_inode()
1470 if (wbc->sync_mode == WB_SYNC_ALL && !wbc->for_sync) { in __writeback_single_inode()
1486 wbc->sync_mode == WB_SYNC_ALL || wbc->for_sync || in __writeback_single_inode()
1516 int err = write_inode(inode, wbc); in __writeback_single_inode()
1520 trace_writeback_single_inode(inode, wbc, nr_to_write); in __writeback_single_inode()
1533 struct writeback_control *wbc) in writeback_single_inode() argument
1545 if (wbc->sync_mode != WB_SYNC_ALL) in writeback_single_inode()
1564 (wbc->sync_mode != WB_SYNC_ALL || in writeback_single_inode()
1568 wbc_attach_and_unlock_inode(wbc, inode); in writeback_single_inode()
1570 ret = __writeback_single_inode(inode, wbc); in writeback_single_inode()
1572 wbc_detach_inode(wbc); in writeback_single_inode()
1633 struct writeback_control wbc = { in writeback_sb_inodes() local
1681 if ((inode->i_state & I_SYNC) && wbc.sync_mode != WB_SYNC_ALL) { in writeback_sb_inodes()
1711 wbc_attach_and_unlock_inode(&wbc, inode); in writeback_sb_inodes()
1714 wbc.nr_to_write = write_chunk; in writeback_sb_inodes()
1715 wbc.pages_skipped = 0; in writeback_sb_inodes()
1721 __writeback_single_inode(inode, &wbc); in writeback_sb_inodes()
1723 wbc_detach_inode(&wbc); in writeback_sb_inodes()
1724 work->nr_pages -= write_chunk - wbc.nr_to_write; in writeback_sb_inodes()
1725 wrote += write_chunk - wbc.nr_to_write; in writeback_sb_inodes()
1748 requeue_inode(inode, tmp_wb, &wbc); in writeback_sb_inodes()
2578 struct writeback_control wbc = { in write_inode_now() local
2586 wbc.nr_to_write = 0; in write_inode_now()
2589 return writeback_single_inode(inode, &wbc); in write_inode_now()
2604 int sync_inode(struct inode *inode, struct writeback_control *wbc) in sync_inode() argument
2606 return writeback_single_inode(inode, wbc); in sync_inode()
2621 struct writeback_control wbc = { in sync_inode_metadata() local
2626 return sync_inode(inode, &wbc); in sync_inode_metadata()