| inode.nlink = fs[ri[inodekey(inode.ino)]].nlink, inode.nsubdirs = 0, fo.inodes?, orphans(fs, ri).inodes?, afs-cons(abs-dirs(fs, ri), abs-files(fs, ri)), file-node-cons(fs, ri), log-cons(log, fs), orphans-cons(fs, ri, orphans(fs, ri)), replay-cons-strong(fs, ri, orphans(fs, ri), fi, fo, log), ri-inj(fi), ri-inj(ri), ubifs-cons(fs, ri, orphans(fs, ri), fi, fo, log), inodekey(inode.ino) ∈ ri, ¬ fs[ri[inodekey(inode.ino)]].directory, ¬ inode.directory, asynced → boolvar ⊦ ⟪aubifs_fsync#(inode, boolvar0; ; err)⟫ ⟨afs_fsync#(inode, boolvar0, abs-dirs(fs, ri), abs-files(fs, ri); ; asynced, err0)⟩ ((asynced → boolvar) ∧ err = err0) |
inode.nlink = fs[ri[inodekey(inode.ino)]].nlink, inode.nsubdirs = 0, boolvar ↔ boolvar0, orphans(fs, ri).inodes?, fo.inodes?, afs-cons(abs-dirs(fs, ri), abs-files(fs, ri)), file-node-cons(fs, ri), log-cons(log, fs), orphans-cons(fs, ri, orphans(fs, ri)), replay-cons-strong(fs, ri, orphans(fs, ri), fi, fo, log), ri-inj(ri), ri-inj(fi), ubifs-cons(fs, ri, orphans(fs, ri), fi, fo, log), inodekey(inode.ino) ∈ ri, asynced → boolvar1 ⊦ ⟪err := ESUCCESS⟫ ⟨afs_fsync#(inode, boolvar0, abs-dirs(fs, ri), abs-files(fs, ri); ; asynced, err0)⟩ ((asynced → boolvar1) ∧ err = err0), fs[ri[inodekey(inode.ino)]].directory, inode.directory
Used simplifier rules: aubifs_fsync#(INODE, ISDATASYNC; ; ERR){ERR := ESUCCESS};