From fd0854e64ec58ffae8c2394012375d957012d307 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Fri, 13 Nov 2026 02:58:26 -0800 Subject: [PATCH] mount: read a pending link change before a periodic metadata flush Only flushMetadataToFiler applied linkRefresh. After a peer unlinked one name, the periodic flush kept publishing over the old link count, so the filer refused every one until a regular flush ran. Co-Authored-By: Claude Opus 5.5 --- weed/mount/weedfs_metadata_flush.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/weed/mount/weedfs_metadata_flush.go b/weed/mount/weedfs_metadata_flush.go index 8805582042..e9ebc38e3b 100644 --- a/weed/mount/weedfs_metadata_flush.go +++ b/weed/mount/weedfs_metadata_flush.go @@ -112,6 +112,11 @@ func (wfs *WFS) flushFileMetadata(fh *FileHandle) error { if fh.GetEntry() == nil { return nil } + if fh.linkRefresh != nil { + if err := wfs.adoptStoredLink(context.Background(), fh, fileFullPath, fh.linkRefresh); err != nil { + return err + } + } // Snapshot the current chunk list. Async uploader goroutines call // entry.AppendChunks while we run CompactFileChunks / MaybeManifestize