Lines Matching refs:wbc

726  * wbc_attach_and_unlock_inode - associate wbc with target inode and unlock it
727 * @wbc: writeback_control of interest
730 * @inode is locked and about to be written back under the control of @wbc.
731 * Record @inode's writeback context into @wbc and unlock the i_lock. On
735 void wbc_attach_and_unlock_inode(struct writeback_control *wbc,
743 wbc->wb = inode_to_wb(inode);
744 wbc->inode = inode;
746 wbc->wb_id = wbc->wb->memcg_css->id;
747 wbc->wb_lcand_id = inode->i_wb_frn_winner;
748 wbc->wb_tcand_id = 0;
749 wbc->wb_bytes = 0;
750 wbc->wb_lcand_bytes = 0;
751 wbc->wb_tcand_bytes = 0;
753 wb_get(wbc->wb);
763 if (unlikely(wb_dying(wbc->wb) && !css_is_dying(wbc->wb->memcg_css)))
764 inode_switch_wbs(inode, wbc->wb_id);
769 * wbc_detach_inode - disassociate wbc from inode and perform foreign detection
770 * @wbc: writeback_control of the just finished writeback
791 * On each writeback attempt, @wbc tries to detect the majority writer
805 void wbc_detach_inode(struct writeback_control *wbc)
807 struct bdi_writeback *wb = wbc->wb;
808 struct inode *inode = wbc->inode;
820 if (wbc->wb_bytes >= wbc->wb_lcand_bytes &&
821 wbc->wb_bytes >= wbc->wb_tcand_bytes) {
822 max_id = wbc->wb_id;
823 max_bytes = wbc->wb_bytes;
824 } else if (wbc->wb_lcand_bytes >= wbc->wb_tcand_bytes) {
825 max_id = wbc->wb_lcand_id;
826 max_bytes = wbc->wb_lcand_bytes;
828 max_id = wbc->wb_tcand_id;
829 max_bytes = wbc->wb_tcand_bytes;
861 if (wbc->wb_id != max_id)
865 trace_inode_foreign_history(inode, wbc, history);
886 wb_put(wbc->wb);
887 wbc->wb = NULL;
893 * @wbc: writeback_control of the writeback in progress
898 * controlled by @wbc. Keep the book for foreign inode detection. See
901 void wbc_account_cgroup_owner(struct writeback_control *wbc, struct page *page,
909 * pageout() path doesn't attach @wbc to the inode being written
914 if (!wbc->wb || wbc->no_cgroup_owner)
925 if (id == wbc->wb_id) {
926 wbc->wb_bytes += bytes;
930 if (id == wbc->wb_lcand_id)
931 wbc->wb_lcand_bytes += bytes;
934 if (!wbc->wb_tcand_bytes)
935 wbc->wb_tcand_id = id;
936 if (id == wbc->wb_tcand_id)
937 wbc->wb_tcand_bytes += bytes;
939 wbc->wb_tcand_bytes -= min(bytes, wbc->wb_tcand_bytes);
1492 static int write_inode(struct inode *inode, struct writeback_control *wbc)
1497 trace_writeback_write_inode_start(inode, wbc);
1498 ret = inode->i_sb->s_op->write_inode(inode, wbc);
1499 trace_writeback_write_inode(inode, wbc);
1564 struct writeback_control *wbc)
1575 (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages))
1578 if (wbc->pages_skipped) {
1597 if (wbc->nr_to_write <= 0) {
1629 * on @wbc->nr_to_write), and clear the relevant dirty flags from i_state.
1639 __writeback_single_inode(struct inode *inode, struct writeback_control *wbc)
1642 long nr_to_write = wbc->nr_to_write;
1648 trace_writeback_single_inode_start(inode, wbc, nr_to_write);
1650 ret = do_writepages(mapping, wbc);
1659 if (wbc->sync_mode == WB_SYNC_ALL && !wbc->for_sync) {
1671 (wbc->sync_mode == WB_SYNC_ALL ||
1706 wbc->unpinned_netfs_wb = true;
1715 int err = write_inode(inode, wbc);
1719 wbc->unpinned_netfs_wb = false;
1720 trace_writeback_single_inode(inode, wbc, nr_to_write);
1727 * writeback_sb_inodes(). @wbc controls various aspects of the write, such as
1734 struct writeback_control *wbc)
1752 if (wbc->sync_mode != WB_SYNC_ALL)
1765 (wbc->sync_mode != WB_SYNC_ALL ||
1769 wbc_attach_and_unlock_inode(wbc, inode);
1771 ret = __writeback_single_inode(inode, wbc);
1773 wbc_detach_inode(wbc);
1815 * inodes/pages in one big loop. Setting wbc.nr_to_write=LONG_MAX
1852 struct writeback_control wbc = {
1901 if ((inode->i_state & I_SYNC) && wbc.sync_mode != WB_SYNC_ALL) {
1931 wbc_attach_and_unlock_inode(&wbc, inode);
1934 wbc.nr_to_write = write_chunk;
1935 wbc.pages_skipped = 0;
1941 __writeback_single_inode(inode, &wbc);
1943 wbc_detach_inode(&wbc);
1944 work->nr_pages -= write_chunk - wbc.nr_to_write;
1945 wrote = write_chunk - wbc.nr_to_write - wbc.pages_skipped;
1970 requeue_inode(inode, tmp_wb, &wbc);
2802 struct writeback_control wbc = {
2810 wbc.nr_to_write = 0;
2813 return writeback_single_inode(inode, &wbc);
2828 struct writeback_control wbc = {
2833 return writeback_single_inode(inode, &wbc);