Lines Matching refs:isw

491 	struct inode_switch_wbs_context *isw =  in inode_switch_wbs_work_fn()  local
493 struct backing_dev_info *bdi = inode_to_bdi(isw->inodes[0]); in inode_switch_wbs_work_fn()
494 struct bdi_writeback *old_wb = isw->inodes[0]->i_wb; in inode_switch_wbs_work_fn()
495 struct bdi_writeback *new_wb = isw->new_wb; in inode_switch_wbs_work_fn()
523 for (inodep = isw->inodes; *inodep; inodep++) { in inode_switch_wbs_work_fn()
539 for (inodep = isw->inodes; *inodep; inodep++) in inode_switch_wbs_work_fn()
542 kfree(isw); in inode_switch_wbs_work_fn()
587 struct inode_switch_wbs_context *isw; in inode_switch_wbs() local
597 isw = kzalloc(struct_size(isw, inodes, 2), GFP_ATOMIC); in inode_switch_wbs()
598 if (!isw) in inode_switch_wbs()
612 isw->new_wb = wb_get_create(bdi, memcg_css, GFP_ATOMIC); in inode_switch_wbs()
614 if (!isw->new_wb) in inode_switch_wbs()
617 if (!inode_prepare_wbs_switch(inode, isw->new_wb)) in inode_switch_wbs()
620 isw->inodes[0] = inode; in inode_switch_wbs()
628 INIT_RCU_WORK(&isw->work, inode_switch_wbs_work_fn); in inode_switch_wbs()
629 queue_rcu_work(isw_wq, &isw->work); in inode_switch_wbs()
634 if (isw->new_wb) in inode_switch_wbs()
635 wb_put(isw->new_wb); in inode_switch_wbs()
636 kfree(isw); in inode_switch_wbs()
639 static bool isw_prepare_wbs_switch(struct inode_switch_wbs_context *isw, in isw_prepare_wbs_switch() argument
645 if (!inode_prepare_wbs_switch(inode, isw->new_wb)) in isw_prepare_wbs_switch()
648 isw->inodes[*nr] = inode; in isw_prepare_wbs_switch()
668 struct inode_switch_wbs_context *isw; in cleanup_offline_cgwb() local
672 isw = kzalloc(struct_size(isw, inodes, WB_MAX_INODES_PER_ISW), in cleanup_offline_cgwb()
674 if (!isw) in cleanup_offline_cgwb()
681 isw->new_wb = wb_get_create(wb->bdi, memcg_css, GFP_KERNEL); in cleanup_offline_cgwb()
682 if (isw->new_wb) in cleanup_offline_cgwb()
685 if (unlikely(!isw->new_wb)) in cleanup_offline_cgwb()
686 isw->new_wb = &wb->bdi->wb; /* wb_get() is noop for bdi's wb */ in cleanup_offline_cgwb()
698 restart = isw_prepare_wbs_switch(isw, &wb->b_attached, &nr); in cleanup_offline_cgwb()
700 restart = isw_prepare_wbs_switch(isw, &wb->b_dirty_time, &nr); in cleanup_offline_cgwb()
706 wb_put(isw->new_wb); in cleanup_offline_cgwb()
707 kfree(isw); in cleanup_offline_cgwb()
717 INIT_RCU_WORK(&isw->work, inode_switch_wbs_work_fn); in cleanup_offline_cgwb()
718 queue_rcu_work(isw_wq, &isw->work); in cleanup_offline_cgwb()