From: Keith Packard Date: Sat, 8 Jan 2011 04:13:28 +0000 (-0800) Subject: altos: ensure erase mark is written when erasing flights X-Git-Tag: debian/0.8.1+36+gd794ef9~12 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=73620c41017c1774d6190dfd4be5b742eb64f8d3;p=fw%2Faltos 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 --- 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); }