X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/f2388f1bdad27efd2816533aa7da80735ed5ec3f..c502c5a50aae825683ee4cff629c6839a4209501:/sdk/go/arvados/fs_collection.go diff --git a/sdk/go/arvados/fs_collection.go b/sdk/go/arvados/fs_collection.go index 0c5819721e..d3af92f9e1 100644 --- a/sdk/go/arvados/fs_collection.go +++ b/sdk/go/arvados/fs_collection.go @@ -85,6 +85,7 @@ func (c *Collection) FileSystem(client apiClient, kc keepClient) (CollectionFile name: ".", mode: os.ModeDir | 0755, modTime: modTime, + sys: c, }, inodes: make(map[string]inode), }, @@ -1159,15 +1160,17 @@ func (dn *dirnode) MemorySize() (size int64) { case *dirnode: size += node.MemorySize() case *filenode: + size += 64 for _, seg := range node.segments { switch seg := seg.(type) { case *memSegment: size += int64(seg.Len()) } + size += 64 } } } - return + return 64 + size } // caller must have write lock. @@ -1565,7 +1568,7 @@ func (dn *dirnode) snapshot() (*dirnode, error) { func (dn *dirnode) Splice(repl inode) error { repl, err := repl.Snapshot() if err != nil { - return err + return fmt.Errorf("cannot copy snapshot: %w", err) } switch repl := repl.(type) { default: @@ -1599,7 +1602,7 @@ func (dn *dirnode) Splice(repl inode) error { defer dn.Unlock() _, err = dn.parent.Child(dn.fileinfo.name, func(inode) (inode, error) { return repl, nil }) if err != nil { - return err + return fmt.Errorf("error replacing filenode: dn.parent.Child(): %w", err) } repl.fs = dn.fs }