diff options
Diffstat (limited to 'weed/mount/weedfs_link.go')
| -rw-r--r-- | weed/mount/weedfs_link.go | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/weed/mount/weedfs_link.go b/weed/mount/weedfs_link.go index 15b7e081e..28466bdfb 100644 --- a/weed/mount/weedfs_link.go +++ b/weed/mount/weedfs_link.go @@ -25,7 +25,6 @@ When creating a link: /** Create a hard link to a file */ func (wfs *WFS) Link(cancel <-chan struct{}, in *fuse.LinkIn, name string, out *fuse.EntryOut) (code fuse.Status) { - if wfs.IsOverQuota { return fuse.Status(syscall.ENOSPC) } @@ -49,6 +48,11 @@ func (wfs *WFS) Link(cancel <-chan struct{}, in *fuse.LinkIn, name string, out * return status } + // hardlink is not allowed in WORM mode + if wfs.wormEnabledForEntry(oldEntryPath, oldEntry) { + return fuse.EPERM + } + // update old file to hardlink mode if len(oldEntry.HardLinkId) == 0 { oldEntry.HardLinkId = filer.NewHardLinkId() |
