Lines Matching refs:wbc

555  * wbc_attach_and_unlock_inode - associate wbc with target inode and unlock it
556 * @wbc: writeback_control of interest
559 * @inode is locked and about to be written back under the control of @wbc.
560 * Record @inode's writeback context into @wbc and unlock the i_lock. On
564 void wbc_attach_and_unlock_inode(struct writeback_control *wbc,
572 wbc->wb = inode_to_wb(inode);
573 wbc->inode = inode;
575 wbc->wb_id = wbc->wb->memcg_css->id;
576 wbc->wb_lcand_id = inode->i_wb_frn_winner;
577 wbc->wb_tcand_id = 0;
578 wbc->wb_bytes = 0;
579 wbc->wb_lcand_bytes = 0;
580 wbc->wb_tcand_bytes = 0;
582 wb_get(wbc->wb);
592 if (unlikely(wb_dying(wbc->wb) && !css_is_dying(wbc->wb->memcg_css)))
593 inode_switch_wbs(inode, wbc->wb_id);
598 * wbc_detach_inode - disassociate wbc from inode and perform foreign detection
599 * @wbc: writeback_control of the just finished writeback
620 * On each writeback attempt, @wbc tries to detect the majority writer
634 void wbc_detach_inode(struct writeback_control *wbc)
636 struct bdi_writeback *wb = wbc->wb;
637 struct inode *inode = wbc->inode;
649 if (wbc->wb_bytes >= wbc->wb_lcand_bytes &&
650 wbc->wb_bytes >= wbc->wb_tcand_bytes) {
651 max_id = wbc->wb_id;
652 max_bytes = wbc->wb_bytes;
653 } else if (wbc->wb_lcand_bytes >= wbc->wb_tcand_bytes) {
654 max_id = wbc->wb_lcand_id;
655 max_bytes = wbc->wb_lcand_bytes;
657 max_id = wbc->wb_tcand_id;
658 max_bytes = wbc->wb_tcand_bytes;
690 if (wbc->wb_id != max_id)
694 trace_inode_foreign_history(inode, wbc, history);
715 wb_put(wbc->wb);
716 wbc->wb = NULL;
722 * @wbc: writeback_control of the writeback in progress
727 * controlled by @wbc. Keep the book for foreign inode detection. See
730 void wbc_account_cgroup_owner(struct writeback_control *wbc, struct page *page,
737 * pageout() path doesn't attach @wbc to the inode being written
742 if (!wbc->wb || wbc->no_cgroup_owner)
752 if (id == wbc->wb_id) {
753 wbc->wb_bytes += bytes;
757 if (id == wbc->wb_lcand_id)
758 wbc->wb_lcand_bytes += bytes;
761 if (!wbc->wb_tcand_bytes)
762 wbc->wb_tcand_id = id;
763 if (id == wbc->wb_tcand_id)
764 wbc->wb_tcand_bytes += bytes;
766 wbc->wb_tcand_bytes -= min(bytes, wbc->wb_tcand_bytes);
1323 static int write_inode(struct inode *inode, struct writeback_control *wbc)
1328 trace_writeback_write_inode_start(inode, wbc);
1329 ret = inode->i_sb->s_op->write_inode(inode, wbc);
1330 trace_writeback_write_inode(inode, wbc);
1395 struct writeback_control *wbc)
1406 (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages))
1409 if (wbc->pages_skipped) {
1423 if (wbc->nr_to_write <= 0) {
1459 __writeback_single_inode(struct inode *inode, struct writeback_control *wbc)
1462 long nr_to_write = wbc->nr_to_write;
1468 trace_writeback_single_inode_start(inode, wbc, nr_to_write);
1470 ret = do_writepages(mapping, wbc);
1479 if (wbc->sync_mode == WB_SYNC_ALL && !wbc->for_sync) {
1491 (wbc->sync_mode == WB_SYNC_ALL || wbc->for_sync ||
1527 int err = write_inode(inode, wbc);
1531 trace_writeback_single_inode(inode, wbc, nr_to_write);
1544 struct writeback_control *wbc)
1556 if (wbc->sync_mode != WB_SYNC_ALL)
1575 (wbc->sync_mode != WB_SYNC_ALL ||
1579 wbc_attach_and_unlock_inode(wbc, inode);
1581 ret = __writeback_single_inode(inode, wbc);
1583 wbc_detach_inode(wbc);
1607 * inodes/pages in one big loop. Setting wbc.nr_to_write=LONG_MAX
1644 struct writeback_control wbc = {
1693 if ((inode->i_state & I_SYNC) && wbc.sync_mode != WB_SYNC_ALL) {
1723 wbc_attach_and_unlock_inode(&wbc, inode);
1726 wbc.nr_to_write = write_chunk;
1727 wbc.pages_skipped = 0;
1733 __writeback_single_inode(inode, &wbc);
1735 wbc_detach_inode(&wbc);
1736 work->nr_pages -= write_chunk - wbc.nr_to_write;
1737 wrote = write_chunk - wbc.nr_to_write - wbc.pages_skipped;
1762 requeue_inode(inode, tmp_wb, &wbc);
2563 struct writeback_control wbc = {
2571 wbc.nr_to_write = 0;
2574 return writeback_single_inode(inode, &wbc);
2581 * @wbc: controls the writeback mode
2589 int sync_inode(struct inode *inode, struct writeback_control *wbc)
2591 return writeback_single_inode(inode, wbc);
2606 struct writeback_control wbc = {
2611 return sync_inode(inode, &wbc);