diff --git a/client/fs/super.go b/client/fs/super.go index aaf2276b1..7355a1b2b 100644 --- a/client/fs/super.go +++ b/client/fs/super.go @@ -239,6 +239,7 @@ func NewSuper(opt *proto.MountOptions) (s *Super, err error) { OnLoadBcache: s.bc.Get, OnCacheBcache: s.bc.Put, OnEvictBcache: s.bc.Evict, + OnGetInodeInfo: s.InodeGet, DisableMetaCache: DisableMetaCache, MinWriteAbleDataPartitionCnt: opt.MinWriteAbleDataPartitionCnt, diff --git a/sdk/data/stream/extent_client.go b/sdk/data/stream/extent_client.go index 9a67fc54d..1eb193663 100644 --- a/sdk/data/stream/extent_client.go +++ b/sdk/data/stream/extent_client.go @@ -140,6 +140,7 @@ type ExtentConfig struct { OnLoadBcache LoadBcacheFunc OnCacheBcache CacheBcacheFunc OnEvictBcache EvictBacheFunc + OnGetInodeInfo GetInodeInfoFunc DisableMetaCache bool MinWriteAbleDataPartitionCnt int @@ -207,11 +208,12 @@ type ExtentClient struct { InnerReq bool AheadRead *AheadReadCache - extentConfig *ExtentConfig - RemoteCache RemoteCache - stopOnce sync.Once - stopCh chan struct{} - wg sync.WaitGroup + extentConfig *ExtentConfig + RemoteCache RemoteCache + stopOnce sync.Once + stopCh chan struct{} + wg sync.WaitGroup + getInodeInfo GetInodeInfoFunc } func (client *ExtentClient) UidIsLimited(uid uint32) bool { diff --git a/sdk/data/stream/stream_remote_cache.go b/sdk/data/stream/stream_remote_cache.go index 524399765..24579a970 100644 --- a/sdk/data/stream/stream_remote_cache.go +++ b/sdk/data/stream/stream_remote_cache.go @@ -164,7 +164,11 @@ func (s *Streamer) prepareCacheRequests(offset, size uint64, data []byte) ([]*Ca log.LogWarnf("Streamer prepareCacheRequests: getDataSource failed. fixedOff(%v) err(%v)", fixedOff, err) return nil, err } - info, _ := s.client.metaWrapper.InodeGet_ll(s.inode) + info, err := s.client.getInodeInfo(s.inode) + if err != nil { + log.LogWarnf("Streamer prepareCacheRequests: getInodeInfo failed. fixedOff(%v) err(%v)", fixedOff, err) + return nil, err + } gen := info.Generation cReq := &proto.CacheRequest{