Lines Matching refs:fcc

553 	struct flush_cmd_control *fcc = SM_I(sbi)->fcc_info;
554 wait_queue_head_t *q = &fcc->flush_wait_queue;
559 if (!llist_empty(&fcc->issue_list)) {
563 fcc->dispatch_list = llist_del_all(&fcc->issue_list);
564 fcc->dispatch_list = llist_reverse_order(fcc->dispatch_list);
566 cmd = llist_entry(fcc->dispatch_list, struct flush_cmd, llnode);
569 atomic_inc(&fcc->issued_flush);
572 fcc->dispatch_list, llnode) {
576 fcc->dispatch_list = NULL;
580 kthread_should_stop() || !llist_empty(&fcc->issue_list));
586 struct flush_cmd_control *fcc = SM_I(sbi)->fcc_info;
594 atomic_inc(&fcc->queued_flush);
596 atomic_dec(&fcc->queued_flush);
597 atomic_inc(&fcc->issued_flush);
601 if (atomic_inc_return(&fcc->queued_flush) == 1 ||
604 atomic_dec(&fcc->queued_flush);
606 atomic_inc(&fcc->issued_flush);
613 llist_add(&cmd.llnode, &fcc->issue_list);
622 if (waitqueue_active(&fcc->flush_wait_queue))
623 wake_up(&fcc->flush_wait_queue);
625 if (fcc->f2fs_issue_flush) {
627 atomic_dec(&fcc->queued_flush);
631 list = llist_del_all(&fcc->issue_list);
634 atomic_dec(&fcc->queued_flush);
643 atomic_dec(&fcc->queued_flush);
658 struct flush_cmd_control *fcc;
661 fcc = SM_I(sbi)->fcc_info;
662 if (fcc->f2fs_issue_flush)
667 fcc = f2fs_kzalloc(sbi, sizeof(struct flush_cmd_control), GFP_KERNEL);
668 if (!fcc)
670 atomic_set(&fcc->issued_flush, 0);
671 atomic_set(&fcc->queued_flush, 0);
672 init_waitqueue_head(&fcc->flush_wait_queue);
673 init_llist_head(&fcc->issue_list);
674 SM_I(sbi)->fcc_info = fcc;
679 fcc->f2fs_issue_flush = kthread_run(issue_flush_thread, sbi,
681 if (IS_ERR(fcc->f2fs_issue_flush)) {
682 int err = PTR_ERR(fcc->f2fs_issue_flush);
684 fcc->f2fs_issue_flush = NULL;
693 struct flush_cmd_control *fcc = SM_I(sbi)->fcc_info;
695 if (fcc && fcc->f2fs_issue_flush) {
696 struct task_struct *flush_thread = fcc->f2fs_issue_flush;
698 fcc->f2fs_issue_flush = NULL;
702 kfree(fcc);