DF-3058
dirfs_fsync returns 0 unconditionally — host fsync() failures are swallowed (and the double-fsync retry stores -1, not errno)
Summary
dirfs_fsync computes 'if (fsync(dnp->dn_fd) == -1) error = fsync(dnp->dn_fd);' (:588-591 - a literal double call; on failure error holds -1, not errno) and then 'return 0;' (:595), discarding the result. POSIX fsync() must report I/O errors; databases and durability-sensitive tools silently believe data is durable. Code-certain contract breach; trigger needs a failing host fsync. Fix: error = errno once + return error.
No comments yet.