Lines Matching refs:wbc

532 void wbc_attach_and_unlock_inode(struct writeback_control *wbc,  in wbc_attach_and_unlock_inode()  argument
540 wbc->wb = inode_to_wb(inode); in wbc_attach_and_unlock_inode()
541 wbc->inode = inode; in wbc_attach_and_unlock_inode()
543 wbc->wb_id = wbc->wb->memcg_css->id; in wbc_attach_and_unlock_inode()
544 wbc->wb_lcand_id = inode->i_wb_frn_winner; in wbc_attach_and_unlock_inode()
545 wbc->wb_tcand_id = 0; in wbc_attach_and_unlock_inode()
546 wbc->wb_bytes = 0; in wbc_attach_and_unlock_inode()
547 wbc->wb_lcand_bytes = 0; in wbc_attach_and_unlock_inode()
548 wbc->wb_tcand_bytes = 0; in wbc_attach_and_unlock_inode()
550 wb_get(wbc->wb); in wbc_attach_and_unlock_inode()
557 if (unlikely(wb_dying(wbc->wb))) in wbc_attach_and_unlock_inode()
558 inode_switch_wbs(inode, wbc->wb_id); in wbc_attach_and_unlock_inode()
598 void wbc_detach_inode(struct writeback_control *wbc) in wbc_detach_inode() argument
600 struct bdi_writeback *wb = wbc->wb; in wbc_detach_inode()
601 struct inode *inode = wbc->inode; in wbc_detach_inode()
613 if (wbc->wb_bytes >= wbc->wb_lcand_bytes && in wbc_detach_inode()
614 wbc->wb_bytes >= wbc->wb_tcand_bytes) { in wbc_detach_inode()
615 max_id = wbc->wb_id; in wbc_detach_inode()
616 max_bytes = wbc->wb_bytes; in wbc_detach_inode()
617 } else if (wbc->wb_lcand_bytes >= wbc->wb_tcand_bytes) { in wbc_detach_inode()
618 max_id = wbc->wb_lcand_id; in wbc_detach_inode()
619 max_bytes = wbc->wb_lcand_bytes; in wbc_detach_inode()
621 max_id = wbc->wb_tcand_id; in wbc_detach_inode()
622 max_bytes = wbc->wb_tcand_bytes; in wbc_detach_inode()
654 if (wbc->wb_id != max_id) in wbc_detach_inode()
676 wb_put(wbc->wb); in wbc_detach_inode()
677 wbc->wb = NULL; in wbc_detach_inode()
690 void wbc_account_io(struct writeback_control *wbc, struct page *page, in wbc_account_io() argument
701 if (!wbc->wb) in wbc_account_io()
706 if (id == wbc->wb_id) { in wbc_account_io()
707 wbc->wb_bytes += bytes; in wbc_account_io()
711 if (id == wbc->wb_lcand_id) in wbc_account_io()
712 wbc->wb_lcand_bytes += bytes; in wbc_account_io()
715 if (!wbc->wb_tcand_bytes) in wbc_account_io()
716 wbc->wb_tcand_id = id; in wbc_account_io()
717 if (id == wbc->wb_tcand_id) in wbc_account_io()
718 wbc->wb_tcand_bytes += bytes; in wbc_account_io()
720 wbc->wb_tcand_bytes -= min(bytes, wbc->wb_tcand_bytes); in wbc_account_io()
1177 static int write_inode(struct inode *inode, struct writeback_control *wbc) in write_inode() argument
1182 trace_writeback_write_inode_start(inode, wbc); in write_inode()
1183 ret = inode->i_sb->s_op->write_inode(inode, wbc); in write_inode()
1184 trace_writeback_write_inode(inode, wbc); in write_inode()
1249 struct writeback_control *wbc) in requeue_inode() argument
1260 (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages)) in requeue_inode()
1263 if (wbc->pages_skipped) { in requeue_inode()
1277 if (wbc->nr_to_write <= 0) { in requeue_inode()
1312 __writeback_single_inode(struct inode *inode, struct writeback_control *wbc) in __writeback_single_inode() argument
1315 long nr_to_write = wbc->nr_to_write; in __writeback_single_inode()
1321 trace_writeback_single_inode_start(inode, wbc, nr_to_write); in __writeback_single_inode()
1323 ret = do_writepages(mapping, wbc); in __writeback_single_inode()
1332 if (wbc->sync_mode == WB_SYNC_ALL && !wbc->for_sync) { in __writeback_single_inode()
1348 wbc->sync_mode == WB_SYNC_ALL || in __writeback_single_inode()
1382 int err = write_inode(inode, wbc); in __writeback_single_inode()
1386 trace_writeback_single_inode(inode, wbc, nr_to_write); in __writeback_single_inode()
1399 struct writeback_control *wbc) in writeback_single_inode() argument
1411 if (wbc->sync_mode != WB_SYNC_ALL) in writeback_single_inode()
1430 (wbc->sync_mode != WB_SYNC_ALL || in writeback_single_inode()
1434 wbc_attach_and_unlock_inode(wbc, inode); in writeback_single_inode()
1436 ret = __writeback_single_inode(inode, wbc); in writeback_single_inode()
1438 wbc_detach_inode(wbc); in writeback_single_inode()
1499 struct writeback_control wbc = { in writeback_sb_inodes() local
1547 if ((inode->i_state & I_SYNC) && wbc.sync_mode != WB_SYNC_ALL) { in writeback_sb_inodes()
1577 wbc_attach_and_unlock_inode(&wbc, inode); in writeback_sb_inodes()
1580 wbc.nr_to_write = write_chunk; in writeback_sb_inodes()
1581 wbc.pages_skipped = 0; in writeback_sb_inodes()
1587 __writeback_single_inode(inode, &wbc); in writeback_sb_inodes()
1589 wbc_detach_inode(&wbc); in writeback_sb_inodes()
1590 work->nr_pages -= write_chunk - wbc.nr_to_write; in writeback_sb_inodes()
1591 wrote += write_chunk - wbc.nr_to_write; in writeback_sb_inodes()
1614 requeue_inode(inode, tmp_wb, &wbc); in writeback_sb_inodes()
2442 struct writeback_control wbc = { in write_inode_now() local
2450 wbc.nr_to_write = 0; in write_inode_now()
2453 return writeback_single_inode(inode, &wbc); in write_inode_now()
2468 int sync_inode(struct inode *inode, struct writeback_control *wbc) in sync_inode() argument
2470 return writeback_single_inode(inode, wbc); in sync_inode()
2485 struct writeback_control wbc = { in sync_inode_metadata() local
2490 return sync_inode(inode, &wbc); in sync_inode_metadata()