Lines Matching defs:fcc

556 	struct flush_cmd_control *fcc = SM_I(sbi)->fcc_info;
557 wait_queue_head_t *q = &fcc->flush_wait_queue;
562 if (!llist_empty(&fcc->issue_list)) {
566 fcc->dispatch_list = llist_del_all(&fcc->issue_list);
567 fcc->dispatch_list = llist_reverse_order(fcc->dispatch_list);
569 cmd = llist_entry(fcc->dispatch_list, struct flush_cmd, llnode);
572 atomic_inc(&fcc->issued_flush);
575 fcc->dispatch_list, llnode) {
579 fcc->dispatch_list = NULL;
583 kthread_should_stop() || !llist_empty(&fcc->issue_list));
589 struct flush_cmd_control *fcc = SM_I(sbi)->fcc_info;
597 atomic_inc(&fcc->queued_flush);
599 atomic_dec(&fcc->queued_flush);
600 atomic_inc(&fcc->issued_flush);
604 if (atomic_inc_return(&fcc->queued_flush) == 1 ||
607 atomic_dec(&fcc->queued_flush);
609 atomic_inc(&fcc->issued_flush);
616 llist_add(&cmd.llnode, &fcc->issue_list);
625 if (waitqueue_active(&fcc->flush_wait_queue))
626 wake_up(&fcc->flush_wait_queue);
628 if (fcc->f2fs_issue_flush) {
630 atomic_dec(&fcc->queued_flush);
634 list = llist_del_all(&fcc->issue_list);
637 atomic_dec(&fcc->queued_flush);
646 atomic_dec(&fcc->queued_flush);
661 struct flush_cmd_control *fcc;
664 fcc = SM_I(sbi)->fcc_info;
665 if (fcc->f2fs_issue_flush)
670 fcc = f2fs_kzalloc(sbi, sizeof(struct flush_cmd_control), GFP_KERNEL);
671 if (!fcc)
673 atomic_set(&fcc->issued_flush, 0);
674 atomic_set(&fcc->queued_flush, 0);
675 init_waitqueue_head(&fcc->flush_wait_queue);
676 init_llist_head(&fcc->issue_list);
677 SM_I(sbi)->fcc_info = fcc;
682 fcc->f2fs_issue_flush = kthread_run(issue_flush_thread, sbi,
684 if (IS_ERR(fcc->f2fs_issue_flush)) {
685 int err = PTR_ERR(fcc->f2fs_issue_flush);
687 fcc->f2fs_issue_flush = NULL;
696 struct flush_cmd_control *fcc = SM_I(sbi)->fcc_info;
698 if (fcc && fcc->f2fs_issue_flush) {
699 struct task_struct *flush_thread = fcc->f2fs_issue_flush;
701 fcc->f2fs_issue_flush = NULL;
705 kfree(fcc);