diff --git a/internal/endpoint/endpoint.go b/internal/endpoint/endpoint.go index e730be8..de344b1 100644 --- a/internal/endpoint/endpoint.go +++ b/internal/endpoint/endpoint.go @@ -644,20 +644,18 @@ func (f subroot) MapToLocal(fs string) (*zfs.DatasetPath, error) { return nil, errors.Errorf("cannot map empty filesystem") } - // 1. Убираем source pool (hdd_...) + // Убираем pool из source if p.Length() > 1 { subpath := p.Copy() subpath.TrimNPrefixComps(1) p = subpath } - // 2. Берём чистый root (только chunk_9XG1J8T0) + // Берём ТОЛЬКО первый компонент от localRoot (chunk_9XG1J8T0) c := f.localRoot.Copy() - - // Убираем всё после первого компонента (client identity и т.д.) - if c.Length() > 1 { + if c.Length() > 0 { rootOnly := c.Copy() - rootOnly.TrimNPrefixComps(c.Length() - 1) + rootOnly.TrimNPrefixComps(c.Length() - 1) // оставляем только chunk_... c = rootOnly }