X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1012f12d29be01b56f2bbbe2e9bd5969d69f7b89..118908c39c6ffa0ae8b62cddbdb610c51a461b6d:/sdk/go/arvados/fs_deferred.go diff --git a/sdk/go/arvados/fs_deferred.go b/sdk/go/arvados/fs_deferred.go index e63883819e..439eaec7c2 100644 --- a/sdk/go/arvados/fs_deferred.go +++ b/sdk/go/arvados/fs_deferred.go @@ -12,10 +12,8 @@ import ( ) func deferredCollectionFS(fs FileSystem, parent inode, coll Collection) inode { - var modTime time.Time - if coll.ModifiedAt != nil { - modTime = *coll.ModifiedAt - } else { + modTime := coll.ModifiedAt + if modTime.IsZero() { modTime = time.Now() } placeholder := &treenode{ @@ -85,19 +83,19 @@ func (dn *deferrednode) Write(p []byte, pos filenodePtr) (int, filenodePtr, erro return dn.realinode().Write(p, pos) } -func (dn *deferrednode) Child(name string, replace func(inode) inode) inode { +func (dn *deferrednode) Child(name string, replace func(inode) (inode, error)) (inode, error) { return dn.realinode().Child(name, replace) } -func (dn *deferrednode) Truncate(size int64) error { return dn.realinode().Truncate(size) } -func (dn *deferrednode) SetParent(p inode, name string) { dn.realinode().SetParent(p, name) } -func (dn *deferrednode) IsDir() bool { return dn.currentinode().IsDir() } -func (dn *deferrednode) Readdir() []os.FileInfo { return dn.realinode().Readdir() } -func (dn *deferrednode) Size() int64 { return dn.currentinode().Size() } -func (dn *deferrednode) FileInfo() os.FileInfo { return dn.currentinode().FileInfo() } -func (dn *deferrednode) Lock() { dn.realinode().Lock() } -func (dn *deferrednode) Unlock() { dn.realinode().Unlock() } -func (dn *deferrednode) RLock() { dn.realinode().RLock() } -func (dn *deferrednode) RUnlock() { dn.realinode().RUnlock() } -func (dn *deferrednode) FS() FileSystem { return dn.currentinode().FS() } -func (dn *deferrednode) Parent() inode { return dn.currentinode().Parent() } +func (dn *deferrednode) Truncate(size int64) error { return dn.realinode().Truncate(size) } +func (dn *deferrednode) SetParent(p inode, name string) { dn.realinode().SetParent(p, name) } +func (dn *deferrednode) IsDir() bool { return dn.currentinode().IsDir() } +func (dn *deferrednode) Readdir() ([]os.FileInfo, error) { return dn.realinode().Readdir() } +func (dn *deferrednode) Size() int64 { return dn.currentinode().Size() } +func (dn *deferrednode) FileInfo() os.FileInfo { return dn.currentinode().FileInfo() } +func (dn *deferrednode) Lock() { dn.realinode().Lock() } +func (dn *deferrednode) Unlock() { dn.realinode().Unlock() } +func (dn *deferrednode) RLock() { dn.realinode().RLock() } +func (dn *deferrednode) RUnlock() { dn.realinode().RUnlock() } +func (dn *deferrednode) FS() FileSystem { return dn.currentinode().FS() } +func (dn *deferrednode) Parent() inode { return dn.currentinode().Parent() }