Lines Matching refs:wbc
518 void wbc_attach_and_unlock_inode(struct writeback_control *wbc, in wbc_attach_and_unlock_inode() argument
526 wbc->wb = inode_to_wb(inode); in wbc_attach_and_unlock_inode()
527 wbc->inode = inode; in wbc_attach_and_unlock_inode()
529 wbc->wb_id = wbc->wb->memcg_css->id; in wbc_attach_and_unlock_inode()
530 wbc->wb_lcand_id = inode->i_wb_frn_winner; in wbc_attach_and_unlock_inode()
531 wbc->wb_tcand_id = 0; in wbc_attach_and_unlock_inode()
532 wbc->wb_bytes = 0; in wbc_attach_and_unlock_inode()
533 wbc->wb_lcand_bytes = 0; in wbc_attach_and_unlock_inode()
534 wbc->wb_tcand_bytes = 0; in wbc_attach_and_unlock_inode()
536 wb_get(wbc->wb); in wbc_attach_and_unlock_inode()
543 if (unlikely(wb_dying(wbc->wb))) in wbc_attach_and_unlock_inode()
544 inode_switch_wbs(inode, wbc->wb_id); in wbc_attach_and_unlock_inode()
584 void wbc_detach_inode(struct writeback_control *wbc) in wbc_detach_inode() argument
586 struct bdi_writeback *wb = wbc->wb; in wbc_detach_inode()
587 struct inode *inode = wbc->inode; in wbc_detach_inode()
599 if (wbc->wb_bytes >= wbc->wb_lcand_bytes && in wbc_detach_inode()
600 wbc->wb_bytes >= wbc->wb_tcand_bytes) { in wbc_detach_inode()
601 max_id = wbc->wb_id; in wbc_detach_inode()
602 max_bytes = wbc->wb_bytes; in wbc_detach_inode()
603 } else if (wbc->wb_lcand_bytes >= wbc->wb_tcand_bytes) { in wbc_detach_inode()
604 max_id = wbc->wb_lcand_id; in wbc_detach_inode()
605 max_bytes = wbc->wb_lcand_bytes; in wbc_detach_inode()
607 max_id = wbc->wb_tcand_id; in wbc_detach_inode()
608 max_bytes = wbc->wb_tcand_bytes; in wbc_detach_inode()
640 if (wbc->wb_id != max_id) in wbc_detach_inode()
662 wb_put(wbc->wb); in wbc_detach_inode()
663 wbc->wb = NULL; in wbc_detach_inode()
676 void wbc_account_io(struct writeback_control *wbc, struct page *page, in wbc_account_io() argument
687 if (!wbc->wb) in wbc_account_io()
694 if (id == wbc->wb_id) { in wbc_account_io()
695 wbc->wb_bytes += bytes; in wbc_account_io()
699 if (id == wbc->wb_lcand_id) in wbc_account_io()
700 wbc->wb_lcand_bytes += bytes; in wbc_account_io()
703 if (!wbc->wb_tcand_bytes) in wbc_account_io()
704 wbc->wb_tcand_id = id; in wbc_account_io()
705 if (id == wbc->wb_tcand_id) in wbc_account_io()
706 wbc->wb_tcand_bytes += bytes; in wbc_account_io()
708 wbc->wb_tcand_bytes -= min(bytes, wbc->wb_tcand_bytes); in wbc_account_io()
1124 static int write_inode(struct inode *inode, struct writeback_control *wbc) in write_inode() argument
1129 trace_writeback_write_inode_start(inode, wbc); in write_inode()
1130 ret = inode->i_sb->s_op->write_inode(inode, wbc); in write_inode()
1131 trace_writeback_write_inode(inode, wbc); in write_inode()
1196 struct writeback_control *wbc) in requeue_inode() argument
1207 (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages)) in requeue_inode()
1210 if (wbc->pages_skipped) { in requeue_inode()
1224 if (wbc->nr_to_write <= 0) { in requeue_inode()
1259 __writeback_single_inode(struct inode *inode, struct writeback_control *wbc) in __writeback_single_inode() argument
1262 long nr_to_write = wbc->nr_to_write; in __writeback_single_inode()
1268 trace_writeback_single_inode_start(inode, wbc, nr_to_write); in __writeback_single_inode()
1270 ret = do_writepages(mapping, wbc); in __writeback_single_inode()
1279 if (wbc->sync_mode == WB_SYNC_ALL && !wbc->for_sync) { in __writeback_single_inode()
1328 int err = write_inode(inode, wbc); in __writeback_single_inode()
1332 trace_writeback_single_inode(inode, wbc, nr_to_write); in __writeback_single_inode()
1345 struct writeback_control *wbc) in writeback_single_inode() argument
1357 if (wbc->sync_mode != WB_SYNC_ALL) in writeback_single_inode()
1376 (wbc->sync_mode != WB_SYNC_ALL || in writeback_single_inode()
1380 wbc_attach_and_unlock_inode(wbc, inode); in writeback_single_inode()
1382 ret = __writeback_single_inode(inode, wbc); in writeback_single_inode()
1384 wbc_detach_inode(wbc); in writeback_single_inode()
1445 struct writeback_control wbc = { in writeback_sb_inodes() local
1493 if ((inode->i_state & I_SYNC) && wbc.sync_mode != WB_SYNC_ALL) { in writeback_sb_inodes()
1523 wbc_attach_and_unlock_inode(&wbc, inode); in writeback_sb_inodes()
1526 wbc.nr_to_write = write_chunk; in writeback_sb_inodes()
1527 wbc.pages_skipped = 0; in writeback_sb_inodes()
1533 __writeback_single_inode(inode, &wbc); in writeback_sb_inodes()
1535 wbc_detach_inode(&wbc); in writeback_sb_inodes()
1536 work->nr_pages -= write_chunk - wbc.nr_to_write; in writeback_sb_inodes()
1537 wrote += write_chunk - wbc.nr_to_write; in writeback_sb_inodes()
1560 requeue_inode(inode, tmp_wb, &wbc); in writeback_sb_inodes()
2355 struct writeback_control wbc = { in write_inode_now() local
2363 wbc.nr_to_write = 0; in write_inode_now()
2366 return writeback_single_inode(inode, &wbc); in write_inode_now()
2381 int sync_inode(struct inode *inode, struct writeback_control *wbc) in sync_inode() argument
2383 return writeback_single_inode(inode, wbc); in sync_inode()
2398 struct writeback_control wbc = { in sync_inode_metadata() local
2403 return sync_inode(inode, &wbc); in sync_inode_metadata()