diff --git a/lib/fs/casefs.go b/lib/fs/casefs.go index 368a5e4df..0d9ab2500 100644 --- a/lib/fs/casefs.go +++ b/lib/fs/casefs.go @@ -224,6 +224,13 @@ func (f *caseFilesystem) Rename(oldpath, newpath string) error { if err := f.checkCase(oldpath); err != nil { return err } + if err := f.checkCase(newpath); err != nil { + // Case-only rename is ok + e := &ErrCaseConflict{} + if !errors.As(err, &e) || e.Real != oldpath { + return err + } + } if err := f.Filesystem.Rename(oldpath, newpath); err != nil { return err }