diff options
author | Keith Packard <keithp@keithp.com> | 2011-01-07 20:13:28 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2011-01-07 20:16:00 -0800 |
commit | 73620c41017c1774d6190dfd4be5b742eb64f8d3 (patch) | |
tree | be224b82451fd74c5ebcc6b2a225c930f947a2b4 /src | |
parent | edd22ee49adf60c35f2fe6ba97c111b7ad4131c2 (diff) |
altos: ensure erase mark is written when erasing flights
It was getting called only when *failing* to erase a flight (oops),
secondly, it wasn't getting written because ao_storage_flush wasn't
getting called.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/ao_log.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/ao_log.c b/src/ao_log.c index f319834a..55b9dfff 100644 --- a/src/ao_log.c +++ b/src/ao_log.c @@ -170,6 +170,7 @@ ao_log_write_erase(uint8_t pos) erase.unused = 0x00; erase.flight = ao_flight_number; ao_storage_write(ao_log_erase_pos(pos), &erase, sizeof (erase)); + ao_storage_flush(); } static void @@ -350,6 +351,7 @@ ao_log_delete(void) __reentrant /* Look for the flight log matching the requested flight */ for (slot = 0; slot < slots; slot++) { if (ao_log_flight(slot) == ao_cmd_lex_i) { + ao_log_erase_mark(); ao_log_current_pos = ao_log_pos(slot); ao_log_end_pos = ao_log_current_pos + ao_config.flight_log_max; while (ao_log_current_pos < ao_log_end_pos) { @@ -374,7 +376,6 @@ ao_log_delete(void) __reentrant return; } } - ao_log_erase_mark(); printf("No such flight: %d\n", ao_cmd_lex_i); } |