• Home
  • Raw
  • Download

Lines Matching refs:ticket

351 			  struct reserve_ticket *ticket)  in remove_ticket()  argument
353 if (!list_empty(&ticket->list)) { in remove_ticket()
354 list_del_init(&ticket->list); in remove_ticket()
355 ASSERT(space_info->reclaim_size >= ticket->bytes); in remove_ticket()
356 space_info->reclaim_size -= ticket->bytes; in remove_ticket()
375 struct reserve_ticket *ticket; in btrfs_try_granting_tickets() local
378 ticket = list_first_entry(head, struct reserve_ticket, list); in btrfs_try_granting_tickets()
381 if ((used + ticket->bytes <= space_info->total_bytes) || in btrfs_try_granting_tickets()
382 btrfs_can_overcommit(fs_info, space_info, ticket->bytes, in btrfs_try_granting_tickets()
386 ticket->bytes); in btrfs_try_granting_tickets()
387 remove_ticket(space_info, ticket); in btrfs_try_granting_tickets()
388 ticket->bytes = 0; in btrfs_try_granting_tickets()
390 wake_up(&ticket->wait); in btrfs_try_granting_tickets()
842 struct reserve_ticket *ticket) in steal_from_global_rsv() argument
852 if (global_rsv->reserved < min_bytes + ticket->bytes) { in steal_from_global_rsv()
856 global_rsv->reserved -= ticket->bytes; in steal_from_global_rsv()
857 remove_ticket(space_info, ticket); in steal_from_global_rsv()
858 ticket->bytes = 0; in steal_from_global_rsv()
859 wake_up(&ticket->wait); in steal_from_global_rsv()
886 struct reserve_ticket *ticket; in maybe_fail_all_tickets() local
898 ticket = list_first_entry(&space_info->tickets, in maybe_fail_all_tickets()
901 if (ticket->steal && in maybe_fail_all_tickets()
902 steal_from_global_rsv(fs_info, space_info, ticket)) in maybe_fail_all_tickets()
907 ticket->bytes); in maybe_fail_all_tickets()
909 remove_ticket(space_info, ticket); in maybe_fail_all_tickets()
910 ticket->error = -ENOSPC; in maybe_fail_all_tickets()
911 wake_up(&ticket->wait); in maybe_fail_all_tickets()
1239 struct reserve_ticket *ticket, in priority_reclaim_metadata_space() argument
1260 if (ticket->bytes == 0) { in priority_reclaim_metadata_space()
1270 struct reserve_ticket *ticket) in priority_reclaim_data_space() argument
1275 if (ticket->bytes == 0) { in priority_reclaim_data_space()
1285 struct reserve_ticket *ticket) in wait_reserve_ticket() argument
1292 while (ticket->bytes > 0 && ticket->error == 0) { in wait_reserve_ticket()
1293 ret = prepare_to_wait_event(&ticket->wait, &wait, TASK_KILLABLE); in wait_reserve_ticket()
1303 remove_ticket(space_info, ticket); in wait_reserve_ticket()
1304 ticket->error = -EINTR; in wait_reserve_ticket()
1311 finish_wait(&ticket->wait, &wait); in wait_reserve_ticket()
1332 struct reserve_ticket *ticket, in handle_reserve_ticket() argument
1342 wait_reserve_ticket(fs_info, space_info, ticket); in handle_reserve_ticket()
1345 priority_reclaim_metadata_space(fs_info, space_info, ticket, in handle_reserve_ticket()
1350 priority_reclaim_metadata_space(fs_info, space_info, ticket, in handle_reserve_ticket()
1355 priority_reclaim_data_space(fs_info, space_info, ticket); in handle_reserve_ticket()
1363 ret = ticket->error; in handle_reserve_ticket()
1364 if (ticket->bytes || ticket->error) { in handle_reserve_ticket()
1372 if (!list_empty(&ticket->list)) { in handle_reserve_ticket()
1373 remove_ticket(space_info, ticket); in handle_reserve_ticket()
1381 ASSERT(list_empty(&ticket->list)); in handle_reserve_ticket()
1388 ASSERT(!(ticket->bytes == 0 && ticket->error)); in handle_reserve_ticket()
1390 start_ns, flush, ticket->error); in handle_reserve_ticket()
1442 struct reserve_ticket ticket; in __reserve_bytes() local
1491 ticket.bytes = orig_bytes; in __reserve_bytes()
1492 ticket.error = 0; in __reserve_bytes()
1493 space_info->reclaim_size += ticket.bytes; in __reserve_bytes()
1494 init_waitqueue_head(&ticket.wait); in __reserve_bytes()
1495 ticket.steal = (flush == BTRFS_RESERVE_FLUSH_ALL_STEAL); in __reserve_bytes()
1502 list_add_tail(&ticket.list, &space_info->tickets); in __reserve_bytes()
1521 list_add_tail(&ticket.list, in __reserve_bytes()
1544 return handle_reserve_ticket(fs_info, space_info, &ticket, start_ns, in __reserve_bytes()