Lines Matching refs:wbc

701  * wbc_attach_and_unlock_inode - associate wbc with target inode and unlock it
702 * @wbc: writeback_control of interest
705 * @inode is locked and about to be written back under the control of @wbc.
706 * Record @inode's writeback context into @wbc and unlock the i_lock. On
710 void wbc_attach_and_unlock_inode(struct writeback_control *wbc,
718 wbc->wb = inode_to_wb(inode);
719 wbc->inode = inode;
721 wbc->wb_id = wbc->wb->memcg_css->id;
722 wbc->wb_lcand_id = inode->i_wb_frn_winner;
723 wbc->wb_tcand_id = 0;
724 wbc->wb_bytes = 0;
725 wbc->wb_lcand_bytes = 0;
726 wbc->wb_tcand_bytes = 0;
728 wb_get(wbc->wb);
738 if (unlikely(wb_dying(wbc->wb) && !css_is_dying(wbc->wb->memcg_css)))
739 inode_switch_wbs(inode, wbc->wb_id);
744 * wbc_detach_inode - disassociate wbc from inode and perform foreign detection
745 * @wbc: writeback_control of the just finished writeback
766 * On each writeback attempt, @wbc tries to detect the majority writer
780 void wbc_detach_inode(struct writeback_control *wbc)
782 struct bdi_writeback *wb = wbc->wb;
783 struct inode *inode = wbc->inode;
795 if (wbc->wb_bytes >= wbc->wb_lcand_bytes &&
796 wbc->wb_bytes >= wbc->wb_tcand_bytes) {
797 max_id = wbc->wb_id;
798 max_bytes = wbc->wb_bytes;
799 } else if (wbc->wb_lcand_bytes >= wbc->wb_tcand_bytes) {
800 max_id = wbc->wb_lcand_id;
801 max_bytes = wbc->wb_lcand_bytes;
803 max_id = wbc->wb_tcand_id;
804 max_bytes = wbc->wb_tcand_bytes;
836 if (wbc->wb_id != max_id)
840 trace_inode_foreign_history(inode, wbc, history);
861 wb_put(wbc->wb);
862 wbc->wb = NULL;
868 * @wbc: writeback_control of the writeback in progress
873 * controlled by @wbc. Keep the book for foreign inode detection. See
876 void wbc_account_cgroup_owner(struct writeback_control *wbc, struct page *page,
884 * pageout() path doesn't attach @wbc to the inode being written
889 if (!wbc->wb || wbc->no_cgroup_owner)
900 if (id == wbc->wb_id) {
901 wbc->wb_bytes += bytes;
905 if (id == wbc->wb_lcand_id)
906 wbc->wb_lcand_bytes += bytes;
909 if (!wbc->wb_tcand_bytes)
910 wbc->wb_tcand_id = id;
911 if (id == wbc->wb_tcand_id)
912 wbc->wb_tcand_bytes += bytes;
914 wbc->wb_tcand_bytes -= min(bytes, wbc->wb_tcand_bytes);
1467 static int write_inode(struct inode *inode, struct writeback_control *wbc)
1472 trace_writeback_write_inode_start(inode, wbc);
1473 ret = inode->i_sb->s_op->write_inode(inode, wbc);
1474 trace_writeback_write_inode(inode, wbc);
1539 struct writeback_control *wbc)
1550 (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages))
1553 if (wbc->pages_skipped) {
1572 if (wbc->nr_to_write <= 0) {
1604 * on @wbc->nr_to_write), and clear the relevant dirty flags from i_state.
1614 __writeback_single_inode(struct inode *inode, struct writeback_control *wbc)
1617 long nr_to_write = wbc->nr_to_write;
1623 trace_writeback_single_inode_start(inode, wbc, nr_to_write);
1625 ret = do_writepages(mapping, wbc);
1634 if (wbc->sync_mode == WB_SYNC_ALL && !wbc->for_sync) {
1646 (wbc->sync_mode == WB_SYNC_ALL ||
1681 wbc->unpinned_fscache_wb = true;
1690 int err = write_inode(inode, wbc);
1694 wbc->unpinned_fscache_wb = false;
1695 trace_writeback_single_inode(inode, wbc, nr_to_write);
1702 * writeback_sb_inodes(). @wbc controls various aspects of the write, such as
1709 struct writeback_control *wbc)
1727 if (wbc->sync_mode != WB_SYNC_ALL)
1740 (wbc->sync_mode != WB_SYNC_ALL ||
1744 wbc_attach_and_unlock_inode(wbc, inode);
1746 ret = __writeback_single_inode(inode, wbc);
1748 wbc_detach_inode(wbc);
1790 * inodes/pages in one big loop. Setting wbc.nr_to_write=LONG_MAX
1827 struct writeback_control wbc = {
1876 if ((inode->i_state & I_SYNC) && wbc.sync_mode != WB_SYNC_ALL) {
1906 wbc_attach_and_unlock_inode(&wbc, inode);
1909 wbc.nr_to_write = write_chunk;
1910 wbc.pages_skipped = 0;
1916 __writeback_single_inode(inode, &wbc);
1918 wbc_detach_inode(&wbc);
1919 work->nr_pages -= write_chunk - wbc.nr_to_write;
1920 wrote = write_chunk - wbc.nr_to_write - wbc.pages_skipped;
1945 requeue_inode(inode, tmp_wb, &wbc);
2777 struct writeback_control wbc = {
2785 wbc.nr_to_write = 0;
2788 return writeback_single_inode(inode, &wbc);
2803 struct writeback_control wbc = {
2808 return writeback_single_inode(inode, &wbc);