Lines Matching refs:fcc

712 	struct flush_cmd_control *fcc = SM_I(sbi)->fcc_info;
713 wait_queue_head_t *q = &fcc->flush_wait_queue;
720 if (!llist_empty(&fcc->issue_list)) {
724 fcc->dispatch_list = llist_del_all(&fcc->issue_list);
725 fcc->dispatch_list = llist_reverse_order(fcc->dispatch_list);
727 cmd = llist_entry(fcc->dispatch_list, struct flush_cmd, llnode);
730 atomic_inc(&fcc->issued_flush);
733 fcc->dispatch_list, llnode) {
737 fcc->dispatch_list = NULL;
743 kthread_should_stop() || !llist_empty(&fcc->issue_list));
749 struct flush_cmd_control *fcc = SM_I(sbi)->fcc_info;
757 atomic_inc(&fcc->queued_flush);
759 atomic_dec(&fcc->queued_flush);
760 atomic_inc(&fcc->issued_flush);
764 if (atomic_inc_return(&fcc->queued_flush) == 1 ||
767 atomic_dec(&fcc->queued_flush);
769 atomic_inc(&fcc->issued_flush);
776 llist_add(&cmd.llnode, &fcc->issue_list);
781 if (waitqueue_active(&fcc->flush_wait_queue))
782 wake_up(&fcc->flush_wait_queue);
784 if (fcc->f2fs_issue_flush) {
786 atomic_dec(&fcc->queued_flush);
790 list = llist_del_all(&fcc->issue_list);
793 atomic_dec(&fcc->queued_flush);
802 atomic_dec(&fcc->queued_flush);
817 struct flush_cmd_control *fcc;
821 fcc = SM_I(sbi)->fcc_info;
822 if (fcc->f2fs_issue_flush)
827 fcc = f2fs_kzalloc(sbi, sizeof(struct flush_cmd_control), GFP_KERNEL);
828 if (!fcc)
830 atomic_set(&fcc->issued_flush, 0);
831 atomic_set(&fcc->queued_flush, 0);
832 init_waitqueue_head(&fcc->flush_wait_queue);
833 init_llist_head(&fcc->issue_list);
834 SM_I(sbi)->fcc_info = fcc;
839 fcc->f2fs_issue_flush = kthread_run(issue_flush_thread, sbi,
841 if (IS_ERR(fcc->f2fs_issue_flush)) {
842 err = PTR_ERR(fcc->f2fs_issue_flush);
843 kfree(fcc);
853 struct flush_cmd_control *fcc = SM_I(sbi)->fcc_info;
855 if (fcc && fcc->f2fs_issue_flush) {
856 struct task_struct *flush_thread = fcc->f2fs_issue_flush;
858 fcc->f2fs_issue_flush = NULL;
862 kfree(fcc);