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