#include int main(void) { printf("Tiny file-system crash-consistency demo\n"); printf("Operation: append one data block (update inode, bitmap, data)\n\n"); printf("Crash after 1 write:\n"); printf(" data only -> write lost, still consistent\n"); printf(" inode only -> pointer to garbage, bitmap mismatch\n"); printf(" bitmap only -> leaked block, no owner\n\n"); printf("Crash after 2 writes:\n"); printf(" inode+bitmap -> metadata OK, garbage data\n"); printf(" inode+data -> bitmap mismatch\n"); printf(" bitmap+data -> leaked block\n\n"); printf("Journaling solution: write transaction to log, commit, then checkpoint.\n"); printf("Recovery: replay committed transactions only.\n"); return 0; }