Lines Matching refs:notifier
1051 struct read_only_notifier *notifier = &vdo->read_only_notifier; in vdo_enable_read_only_entry() local
1054 notifier->read_only_error = VDO_READ_ONLY; in vdo_enable_read_only_entry()
1055 notifier->state = NOTIFIED; in vdo_enable_read_only_entry()
1057 notifier->state = MAY_NOT_NOTIFY; in vdo_enable_read_only_entry()
1060 spin_lock_init(¬ifier->lock); in vdo_enable_read_only_entry()
1061 vdo_initialize_completion(¬ifier->completion, vdo, in vdo_enable_read_only_entry()
1082 struct read_only_notifier *notifier = &vdo->read_only_notifier; in vdo_wait_until_not_entering_read_only_mode() local
1086 if (notifier->waiter != NULL) { in vdo_wait_until_not_entering_read_only_mode()
1091 spin_lock(¬ifier->lock); in vdo_wait_until_not_entering_read_only_mode()
1092 if (notifier->state == NOTIFYING) in vdo_wait_until_not_entering_read_only_mode()
1093 notifier->waiter = parent; in vdo_wait_until_not_entering_read_only_mode()
1094 else if (notifier->state == MAY_NOTIFY) in vdo_wait_until_not_entering_read_only_mode()
1095 notifier->state = MAY_NOT_NOTIFY; in vdo_wait_until_not_entering_read_only_mode()
1096 spin_unlock(¬ifier->lock); in vdo_wait_until_not_entering_read_only_mode()
1098 if (notifier->waiter == NULL) { in vdo_wait_until_not_entering_read_only_mode()
1126 struct read_only_notifier *notifier = as_notifier(completion); in finish_entering_read_only_mode() local
1130 spin_lock(¬ifier->lock); in finish_entering_read_only_mode()
1131 notifier->state = NOTIFIED; in finish_entering_read_only_mode()
1132 spin_unlock(¬ifier->lock); in finish_entering_read_only_mode()
1134 if (notifier->waiter != NULL) in finish_entering_read_only_mode()
1135 vdo_continue_completion(vdo_forget(notifier->waiter), in finish_entering_read_only_mode()
1147 struct read_only_notifier *notifier = as_notifier(completion); in make_thread_read_only() local
1157 vdo_log_error_strerror(READ_ONCE(notifier->read_only_error), in make_thread_read_only()
1210 struct read_only_notifier *notifier = &vdo->read_only_notifier; in vdo_allow_read_only_mode_entry() local
1214 if (notifier->waiter != NULL) { in vdo_allow_read_only_mode_entry()
1219 spin_lock(¬ifier->lock); in vdo_allow_read_only_mode_entry()
1220 if (notifier->state == MAY_NOT_NOTIFY) { in vdo_allow_read_only_mode_entry()
1221 if (notifier->read_only_error == VDO_SUCCESS) { in vdo_allow_read_only_mode_entry()
1222 notifier->state = MAY_NOTIFY; in vdo_allow_read_only_mode_entry()
1224 notifier->state = NOTIFYING; in vdo_allow_read_only_mode_entry()
1225 notifier->waiter = parent; in vdo_allow_read_only_mode_entry()
1228 spin_unlock(¬ifier->lock); in vdo_allow_read_only_mode_entry()
1230 if (notifier->waiter == NULL) { in vdo_allow_read_only_mode_entry()
1237 make_thread_read_only(¬ifier->completion); in vdo_allow_read_only_mode_entry()
1252 struct read_only_notifier *notifier = &vdo->read_only_notifier; in vdo_enter_read_only_mode() local
1266 spin_lock(¬ifier->lock); in vdo_enter_read_only_mode()
1267 if (notifier->read_only_error == VDO_SUCCESS) { in vdo_enter_read_only_mode()
1268 WRITE_ONCE(notifier->read_only_error, error_code); in vdo_enter_read_only_mode()
1269 if (notifier->state == MAY_NOTIFY) { in vdo_enter_read_only_mode()
1270 notifier->state = NOTIFYING; in vdo_enter_read_only_mode()
1274 spin_unlock(¬ifier->lock); in vdo_enter_read_only_mode()
1282 vdo_launch_completion_callback(¬ifier->completion, make_thread_read_only, 0); in vdo_enter_read_only_mode()