Lines Matching refs:wbc

557 void wbc_attach_and_unlock_inode(struct writeback_control *wbc,  in wbc_attach_and_unlock_inode()  argument
565 wbc->wb = inode_to_wb(inode); in wbc_attach_and_unlock_inode()
566 wbc->inode = inode; in wbc_attach_and_unlock_inode()
568 wbc->wb_id = wbc->wb->memcg_css->id; in wbc_attach_and_unlock_inode()
569 wbc->wb_lcand_id = inode->i_wb_frn_winner; in wbc_attach_and_unlock_inode()
570 wbc->wb_tcand_id = 0; in wbc_attach_and_unlock_inode()
571 wbc->wb_bytes = 0; in wbc_attach_and_unlock_inode()
572 wbc->wb_lcand_bytes = 0; in wbc_attach_and_unlock_inode()
573 wbc->wb_tcand_bytes = 0; in wbc_attach_and_unlock_inode()
575 wb_get(wbc->wb); in wbc_attach_and_unlock_inode()
585 if (unlikely(wb_dying(wbc->wb) && !css_is_dying(wbc->wb->memcg_css))) in wbc_attach_and_unlock_inode()
586 inode_switch_wbs(inode, wbc->wb_id); in wbc_attach_and_unlock_inode()
627 void wbc_detach_inode(struct writeback_control *wbc) in wbc_detach_inode() argument
629 struct bdi_writeback *wb = wbc->wb; in wbc_detach_inode()
630 struct inode *inode = wbc->inode; in wbc_detach_inode()
642 if (wbc->wb_bytes >= wbc->wb_lcand_bytes && in wbc_detach_inode()
643 wbc->wb_bytes >= wbc->wb_tcand_bytes) { in wbc_detach_inode()
644 max_id = wbc->wb_id; in wbc_detach_inode()
645 max_bytes = wbc->wb_bytes; in wbc_detach_inode()
646 } else if (wbc->wb_lcand_bytes >= wbc->wb_tcand_bytes) { in wbc_detach_inode()
647 max_id = wbc->wb_lcand_id; in wbc_detach_inode()
648 max_bytes = wbc->wb_lcand_bytes; in wbc_detach_inode()
650 max_id = wbc->wb_tcand_id; in wbc_detach_inode()
651 max_bytes = wbc->wb_tcand_bytes; in wbc_detach_inode()
683 if (wbc->wb_id != max_id) in wbc_detach_inode()
687 trace_inode_foreign_history(inode, wbc, history); in wbc_detach_inode()
708 wb_put(wbc->wb); in wbc_detach_inode()
709 wbc->wb = NULL; in wbc_detach_inode()
723 void wbc_account_cgroup_owner(struct writeback_control *wbc, struct page *page, in wbc_account_cgroup_owner() argument
735 if (!wbc->wb || wbc->no_cgroup_owner) in wbc_account_cgroup_owner()
745 if (id == wbc->wb_id) { in wbc_account_cgroup_owner()
746 wbc->wb_bytes += bytes; in wbc_account_cgroup_owner()
750 if (id == wbc->wb_lcand_id) in wbc_account_cgroup_owner()
751 wbc->wb_lcand_bytes += bytes; in wbc_account_cgroup_owner()
754 if (!wbc->wb_tcand_bytes) in wbc_account_cgroup_owner()
755 wbc->wb_tcand_id = id; in wbc_account_cgroup_owner()
756 if (id == wbc->wb_tcand_id) in wbc_account_cgroup_owner()
757 wbc->wb_tcand_bytes += bytes; in wbc_account_cgroup_owner()
759 wbc->wb_tcand_bytes -= min(bytes, wbc->wb_tcand_bytes); in wbc_account_cgroup_owner()
1306 static int write_inode(struct inode *inode, struct writeback_control *wbc) in write_inode() argument
1311 trace_writeback_write_inode_start(inode, wbc); in write_inode()
1312 ret = inode->i_sb->s_op->write_inode(inode, wbc); in write_inode()
1313 trace_writeback_write_inode(inode, wbc); in write_inode()
1378 struct writeback_control *wbc) in requeue_inode() argument
1389 (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages)) in requeue_inode()
1392 if (wbc->pages_skipped) { in requeue_inode()
1406 if (wbc->nr_to_write <= 0) { in requeue_inode()
1441 __writeback_single_inode(struct inode *inode, struct writeback_control *wbc) in __writeback_single_inode() argument
1444 long nr_to_write = wbc->nr_to_write; in __writeback_single_inode()
1450 trace_writeback_single_inode_start(inode, wbc, nr_to_write); in __writeback_single_inode()
1452 ret = do_writepages(mapping, wbc); in __writeback_single_inode()
1461 if (wbc->sync_mode == WB_SYNC_ALL && !wbc->for_sync) { in __writeback_single_inode()
1477 wbc->sync_mode == WB_SYNC_ALL || in __writeback_single_inode()
1511 int err = write_inode(inode, wbc); in __writeback_single_inode()
1515 trace_writeback_single_inode(inode, wbc, nr_to_write); in __writeback_single_inode()
1528 struct writeback_control *wbc) in writeback_single_inode() argument
1540 if (wbc->sync_mode != WB_SYNC_ALL) in writeback_single_inode()
1559 (wbc->sync_mode != WB_SYNC_ALL || in writeback_single_inode()
1563 wbc_attach_and_unlock_inode(wbc, inode); in writeback_single_inode()
1565 ret = __writeback_single_inode(inode, wbc); in writeback_single_inode()
1567 wbc_detach_inode(wbc); in writeback_single_inode()
1628 struct writeback_control wbc = { in writeback_sb_inodes() local
1676 if ((inode->i_state & I_SYNC) && wbc.sync_mode != WB_SYNC_ALL) { in writeback_sb_inodes()
1706 wbc_attach_and_unlock_inode(&wbc, inode); in writeback_sb_inodes()
1709 wbc.nr_to_write = write_chunk; in writeback_sb_inodes()
1710 wbc.pages_skipped = 0; in writeback_sb_inodes()
1716 __writeback_single_inode(inode, &wbc); in writeback_sb_inodes()
1718 wbc_detach_inode(&wbc); in writeback_sb_inodes()
1719 work->nr_pages -= write_chunk - wbc.nr_to_write; in writeback_sb_inodes()
1720 wrote += write_chunk - wbc.nr_to_write; in writeback_sb_inodes()
1743 requeue_inode(inode, tmp_wb, &wbc); in writeback_sb_inodes()
2574 struct writeback_control wbc = { in write_inode_now() local
2582 wbc.nr_to_write = 0; in write_inode_now()
2585 return writeback_single_inode(inode, &wbc); in write_inode_now()
2600 int sync_inode(struct inode *inode, struct writeback_control *wbc) in sync_inode() argument
2602 return writeback_single_inode(inode, wbc); in sync_inode()
2617 struct writeback_control wbc = { in sync_inode_metadata() local
2622 return sync_inode(inode, &wbc); in sync_inode_metadata()