Lines Matching full:freeze
28 /// The cookie of this freeze listener.
49 /// Under some scenarios, userspace may delete a freeze listener and immediately recreate it
60 /// Represents a notification that the freeze state has changed.
95 let freeze = freeze_entry.get_mut(); in do_work() localVariable
97 if freeze.num_cleared_duplicates > 0 { in do_work()
98 freeze.num_cleared_duplicates -= 1; in do_work()
105 if freeze.is_pending { in do_work()
108 if freeze.is_clearing { in do_work()
109 kernel::warn_on!(freeze.num_cleared_duplicates != 0); in do_work()
110 if freeze.num_pending_duplicates > 0 { in do_work()
111 // The primary freeze listener was deleted, so convert a pending duplicate back in do_work()
113 freeze.num_pending_duplicates -= 1; in do_work()
114 freeze.is_pending = true; in do_work()
115 freeze.is_clearing = true; in do_work()
124 let is_frozen = freeze.node.owner.inner.lock().is_frozen.is_fully_frozen(); in do_work()
125 if freeze.last_is_frozen == Some(is_frozen) { in do_work()
131 state_info.cookie = freeze.cookie.0; in do_work()
132 freeze.is_pending = true; in do_work()
133 freeze.last_is_frozen = Some(is_frozen); in do_work()
182 if info.freeze().is_some() { in request_freeze_notif()
228 *info.freeze() = Some(cookie); in request_freeze_notif()
240 let Some(freeze) = node_refs.freeze_listeners.get_mut(&cookie) else { in freeze_notif_done()
245 if freeze.num_pending_duplicates > 0 { in freeze_notif_done()
247 freeze.num_pending_duplicates -= 1; in freeze_notif_done()
248 freeze.num_cleared_duplicates += 1; in freeze_notif_done()
250 if !freeze.is_pending { in freeze_notif_done()
257 let is_frozen = freeze.node.owner.inner.lock().is_frozen.is_fully_frozen(); in freeze_notif_done()
258 if freeze.is_clearing || freeze.last_is_frozen != Some(is_frozen) { in freeze_notif_done()
262 freeze.is_pending = false; in freeze_notif_done()
283 let Some(info_cookie) = info.freeze() else { in clear_freeze_notif()
284 pr_warn!("BC_CLEAR_FREEZE_NOTIFICATION freeze notification not active\n"); in clear_freeze_notif()
288 pr_warn!("BC_CLEAR_FREEZE_NOTIFICATION freeze notification cookie mismatch\n"); in clear_freeze_notif()
297 *info.freeze() = None; in clear_freeze_notif()
314 *node_ref.freeze() in get_freeze_cookie()
317 /// Creates a vector of every freeze listener on this process.
328 // all, there might not be any freeze listeners, in which case this operation could still in find_freeze_recipients()
369 /// Prepare allocations for sending freeze messages.
375 // If the freeze listener was removed in the meantime, just discard the in prepare_freeze_messages()