| aubifs_replayone#(ADR, FI, RO, FO, FS, LOG, CSYNCED; ERR, RI) {choose ND, EXISTS with true in {aubifs_core_journal_get#(ADR, RI, FI, RO, FO, FS, LOG, CSYNCED; ND; ERR); if ERR = ESUCCESS then {if ND.inode? then if ND.nlink ≠ 0 ∨ ND.key.ino = ROOT_INO then aubifs_core_index_store#(ND.key, ADR, FI, RO, FO, FS, LOG, CSYNCED; RI) else {if ¬ ND.directory then aubifs_core_index_truncate#(ND.key, 0, FI, RO, FO, FS, LOG, CSYNCED; RI); if ERR = ESUCCESS then aubifs_core_index_remove#(ND.key, FI, RO, FO, FS, LOG, CSYNCED; RI)}; if ND.dentry? then if ND.ino ≠ 0 then aubifs_core_index_store#(ND.key, ADR, FI, RO, FO, FS, LOG, CSYNCED; RI) else aubifs_core_index_remove#(ND.key, FI, RO, FO, FS, LOG, CSYNCED; RI); if ND.data? then {let KEY = inodekey(ND.key.ino) in aubifs_core_index_contains#(KEY, RI, FI, RO, FO, FS, LOG, CSYNCED; EXISTS; ERR); if ERR = ESUCCESS ∧ EXISTS then aubifs_core_index_store#(ND.key, ADR, FI, RO, FO, FS, LOG, CSYNCED; RI)}; if ND.trunc? then aubifs_core_index_truncate#(ND.key, ND.size, FI, RO, FO, FS, LOG, CSYNCED; RI)}} } |