From 1787a31209f9e1b6ba036ae6ddea7259e2bc4aaf 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 1edee9d6ee..968c4e6c87 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