Lines Matching refs:ticket

400 			  struct reserve_ticket *ticket)  in remove_ticket()  argument
402 if (!list_empty(&ticket->list)) { in remove_ticket()
403 list_del_init(&ticket->list); in remove_ticket()
404 ASSERT(space_info->reclaim_size >= ticket->bytes); in remove_ticket()
405 space_info->reclaim_size -= ticket->bytes; in remove_ticket()
424 struct reserve_ticket *ticket; in btrfs_try_granting_tickets() local
427 ticket = list_first_entry(head, struct reserve_ticket, list); in btrfs_try_granting_tickets()
430 if ((used + ticket->bytes <= space_info->total_bytes) || in btrfs_try_granting_tickets()
431 btrfs_can_overcommit(fs_info, space_info, ticket->bytes, in btrfs_try_granting_tickets()
435 ticket->bytes); in btrfs_try_granting_tickets()
436 remove_ticket(space_info, ticket); in btrfs_try_granting_tickets()
437 ticket->bytes = 0; in btrfs_try_granting_tickets()
439 wake_up(&ticket->wait); in btrfs_try_granting_tickets()
951 struct reserve_ticket *ticket) in steal_from_global_rsv() argument
956 if (!ticket->steal) in steal_from_global_rsv()
964 if (global_rsv->reserved < min_bytes + ticket->bytes) { in steal_from_global_rsv()
968 global_rsv->reserved -= ticket->bytes; in steal_from_global_rsv()
969 remove_ticket(space_info, ticket); in steal_from_global_rsv()
970 ticket->bytes = 0; in steal_from_global_rsv()
971 wake_up(&ticket->wait); in steal_from_global_rsv()
998 struct reserve_ticket *ticket; in maybe_fail_all_tickets() local
1011 ticket = list_first_entry(&space_info->tickets, in maybe_fail_all_tickets()
1014 if (!aborted && steal_from_global_rsv(fs_info, space_info, ticket)) in maybe_fail_all_tickets()
1019 ticket->bytes); in maybe_fail_all_tickets()
1021 remove_ticket(space_info, ticket); in maybe_fail_all_tickets()
1023 ticket->error = -EIO; in maybe_fail_all_tickets()
1025 ticket->error = -ENOSPC; in maybe_fail_all_tickets()
1026 wake_up(&ticket->wait); in maybe_fail_all_tickets()
1370 struct reserve_ticket *ticket, in priority_reclaim_metadata_space() argument
1385 if (ticket->bytes == 0) { in priority_reclaim_metadata_space()
1396 if (ticket->bytes == 0) { in priority_reclaim_metadata_space()
1411 ticket->error = BTRFS_FS_ERROR(fs_info); in priority_reclaim_metadata_space()
1412 remove_ticket(space_info, ticket); in priority_reclaim_metadata_space()
1413 } else if (!steal_from_global_rsv(fs_info, space_info, ticket)) { in priority_reclaim_metadata_space()
1414 ticket->error = -ENOSPC; in priority_reclaim_metadata_space()
1415 remove_ticket(space_info, ticket); in priority_reclaim_metadata_space()
1429 struct reserve_ticket *ticket) in priority_reclaim_data_space() argument
1434 if (ticket->bytes == 0) { in priority_reclaim_data_space()
1443 if (ticket->bytes == 0) { in priority_reclaim_data_space()
1449 ticket->error = -ENOSPC; in priority_reclaim_data_space()
1450 remove_ticket(space_info, ticket); in priority_reclaim_data_space()
1457 struct reserve_ticket *ticket) in wait_reserve_ticket() argument
1464 while (ticket->bytes > 0 && ticket->error == 0) { in wait_reserve_ticket()
1465 ret = prepare_to_wait_event(&ticket->wait, &wait, TASK_KILLABLE); in wait_reserve_ticket()
1475 remove_ticket(space_info, ticket); in wait_reserve_ticket()
1476 ticket->error = -EINTR; in wait_reserve_ticket()
1483 finish_wait(&ticket->wait, &wait); in wait_reserve_ticket()
1504 struct reserve_ticket *ticket, in handle_reserve_ticket() argument
1514 wait_reserve_ticket(fs_info, space_info, ticket); in handle_reserve_ticket()
1517 priority_reclaim_metadata_space(fs_info, space_info, ticket, in handle_reserve_ticket()
1522 priority_reclaim_metadata_space(fs_info, space_info, ticket, in handle_reserve_ticket()
1527 priority_reclaim_data_space(fs_info, space_info, ticket); in handle_reserve_ticket()
1534 ret = ticket->error; in handle_reserve_ticket()
1535 ASSERT(list_empty(&ticket->list)); in handle_reserve_ticket()
1542 ASSERT(!(ticket->bytes == 0 && ticket->error)); in handle_reserve_ticket()
1544 start_ns, flush, ticket->error); in handle_reserve_ticket()
1612 struct reserve_ticket ticket; in __reserve_bytes() local
1685 ticket.bytes = orig_bytes; in __reserve_bytes()
1686 ticket.error = 0; in __reserve_bytes()
1687 space_info->reclaim_size += ticket.bytes; in __reserve_bytes()
1688 init_waitqueue_head(&ticket.wait); in __reserve_bytes()
1689 ticket.steal = can_steal(flush); in __reserve_bytes()
1696 list_add_tail(&ticket.list, &space_info->tickets); in __reserve_bytes()
1715 list_add_tail(&ticket.list, in __reserve_bytes()
1737 return handle_reserve_ticket(fs_info, space_info, &ticket, start_ns, in __reserve_bytes()