Lines Matching refs:ticket
224 struct reserve_ticket *ticket; in btrfs_try_granting_tickets() local
227 ticket = list_first_entry(head, struct reserve_ticket, list); in btrfs_try_granting_tickets()
230 if ((used + ticket->bytes <= space_info->total_bytes) || in btrfs_try_granting_tickets()
231 can_overcommit(fs_info, space_info, ticket->bytes, flush, in btrfs_try_granting_tickets()
235 ticket->bytes); in btrfs_try_granting_tickets()
236 list_del_init(&ticket->list); in btrfs_try_granting_tickets()
237 ticket->bytes = 0; in btrfs_try_granting_tickets()
239 wake_up(&ticket->wait); in btrfs_try_granting_tickets()
462 struct reserve_ticket *ticket = NULL; in may_commit_transaction() local
482 ticket = list_first_entry(&space_info->priority_tickets, in may_commit_transaction()
485 ticket = list_first_entry(&space_info->tickets, in may_commit_transaction()
487 bytes_needed = (ticket) ? ticket->bytes : 0; in may_commit_transaction()
634 struct reserve_ticket *ticket; in btrfs_calc_reclaim_metadata_size() local
639 list_for_each_entry(ticket, &space_info->tickets, list) in btrfs_calc_reclaim_metadata_size()
640 to_reclaim += ticket->bytes; in btrfs_calc_reclaim_metadata_size()
641 list_for_each_entry(ticket, &space_info->priority_tickets, list) in btrfs_calc_reclaim_metadata_size()
642 to_reclaim += ticket->bytes; in btrfs_calc_reclaim_metadata_size()
704 struct reserve_ticket *ticket; in maybe_fail_all_tickets() local
715 ticket = list_first_entry(&space_info->tickets, in maybe_fail_all_tickets()
729 first_ticket_bytes = ticket->bytes; in maybe_fail_all_tickets()
730 else if (first_ticket_bytes > ticket->bytes) in maybe_fail_all_tickets()
735 ticket->bytes); in maybe_fail_all_tickets()
737 list_del_init(&ticket->list); in maybe_fail_all_tickets()
738 ticket->error = -ENOSPC; in maybe_fail_all_tickets()
739 wake_up(&ticket->wait); in maybe_fail_all_tickets()
855 struct reserve_ticket *ticket, in priority_reclaim_metadata_space() argument
876 if (ticket->bytes == 0) { in priority_reclaim_metadata_space()
886 struct reserve_ticket *ticket) in wait_reserve_ticket() argument
893 while (ticket->bytes > 0 && ticket->error == 0) { in wait_reserve_ticket()
894 ret = prepare_to_wait_event(&ticket->wait, &wait, TASK_KILLABLE); in wait_reserve_ticket()
904 list_del_init(&ticket->list); in wait_reserve_ticket()
905 ticket->error = -EINTR; in wait_reserve_ticket()
912 finish_wait(&ticket->wait, &wait); in wait_reserve_ticket()
930 struct reserve_ticket *ticket, in handle_reserve_ticket() argument
937 wait_reserve_ticket(fs_info, space_info, ticket); in handle_reserve_ticket()
940 priority_reclaim_metadata_space(fs_info, space_info, ticket, in handle_reserve_ticket()
945 priority_reclaim_metadata_space(fs_info, space_info, ticket, in handle_reserve_ticket()
955 ret = ticket->error; in handle_reserve_ticket()
956 if (ticket->bytes || ticket->error) { in handle_reserve_ticket()
962 list_del_init(&ticket->list); in handle_reserve_ticket()
967 ASSERT(list_empty(&ticket->list)); in handle_reserve_ticket()
974 ASSERT(!(ticket->bytes == 0 && ticket->error)); in handle_reserve_ticket()
998 struct reserve_ticket ticket; in __reserve_metadata_bytes() local
1033 ticket.bytes = orig_bytes; in __reserve_metadata_bytes()
1034 ticket.error = 0; in __reserve_metadata_bytes()
1035 init_waitqueue_head(&ticket.wait); in __reserve_metadata_bytes()
1037 list_add_tail(&ticket.list, &space_info->tickets); in __reserve_metadata_bytes()
1048 list_add_tail(&ticket.list, in __reserve_metadata_bytes()
1072 return handle_reserve_ticket(fs_info, space_info, &ticket, flush); in __reserve_metadata_bytes()