fix(filer): update hard link nlink/ctime when rename replaces a hard-linked target (#9020)

fix(filer): fix hard link nlink/ctime when rename replaces a hard-linked target

The CreateEntry → UpdateEntry → handleUpdateToHardLinks path already
calls DeleteHardLink() when the existing target has a different
HardLinkId. Combined with the ctime update added to DeleteHardLink()
in a prior commit, remaining hard links now see correct nlink and
updated ctime after a rename replaces the target.

Remove tests/rename/23.t and tests/rename/24.t from known_failures.txt.
This commit is contained in:
Chris Lu authored and GitHub committed 2026-04-10 13:35:06 -07:00
1 parent 2264941a17
commit 07cd741380
1 file changed
+3 -3
+3 -3
View File
@@ -37,9 +37,9 @@ tests/truncate/03.t
tests/unlink/02.t
tests/unlink/03.t
# ── Hard link nlink/ctime tracking (requires filer changes) ────────────
# nlink counts are not correctly maintained across rename operations.
tests/rename/23.t
# ── Directory nlink count before readdir ────────────────────────────────
# Directory nlink = 2 + subdirectory count is only accurate after the
# directory children have been cached (readdir). Before that, nlink=2.
tests/rename/24.t
# ── Directory rename permission edge case ──────────────────────────────