mirror of
https://github.com/ipfs/kubo.git
synced 2026-03-03 07:18:12 +08:00
fix go vet issues in hamt sharding PR
License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>
This commit is contained in:
parent
c4c665395a
commit
65b9716989
@ -348,7 +348,7 @@ Examples:
|
||||
case *mfs.Directory:
|
||||
if !long {
|
||||
var output []mfs.NodeListing
|
||||
names, err := fsn.ListNames()
|
||||
names, err := fsn.ListNames(req.Context())
|
||||
if err != nil {
|
||||
res.SetError(err, cmds.ErrNormal)
|
||||
return
|
||||
@ -361,7 +361,7 @@ Examples:
|
||||
}
|
||||
res.SetOutput(&FilesLsOutput{output})
|
||||
} else {
|
||||
listing, err := fsn.List()
|
||||
listing, err := fsn.List(req.Context())
|
||||
if err != nil {
|
||||
res.SetError(err, cmds.ErrNormal)
|
||||
return
|
||||
|
||||
@ -111,7 +111,7 @@ The JSON output contains type information.
|
||||
return
|
||||
}
|
||||
|
||||
links, err := dir.Links()
|
||||
links, err := dir.Links(req.Context())
|
||||
if err != nil {
|
||||
res.SetError(err, cmds.ErrNormal)
|
||||
return
|
||||
|
||||
@ -197,7 +197,7 @@ func (adder *Adder) Finalize() (node.Node, error) {
|
||||
|
||||
var name string
|
||||
if !adder.Wrap {
|
||||
children, err := root.(*mfs.Directory).ListNames()
|
||||
children, err := root.(*mfs.Directory).ListNames(adder.ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -232,7 +232,7 @@ func (adder *Adder) outputDirs(path string, fsn mfs.FSNode) error {
|
||||
case *mfs.File:
|
||||
return nil
|
||||
case *mfs.Directory:
|
||||
names, err := fsn.ListNames()
|
||||
names, err := fsn.ListNames(adder.ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -324,7 +324,7 @@ func (s *Directory) Lookup(ctx context.Context, name string) (fs.Node, error) {
|
||||
// ReadDirAll reads the link structure as directory entries
|
||||
func (dir *Directory) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) {
|
||||
var entries []fuse.Dirent
|
||||
listing, err := dir.dir.List()
|
||||
listing, err := dir.dir.List(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
10
mfs/dir.go
10
mfs/dir.go
@ -217,12 +217,12 @@ type NodeListing struct {
|
||||
Hash string
|
||||
}
|
||||
|
||||
func (d *Directory) ListNames() ([]string, error) {
|
||||
func (d *Directory) ListNames(ctx context.Context) ([]string, error) {
|
||||
d.lock.Lock()
|
||||
defer d.lock.Unlock()
|
||||
|
||||
var out []string
|
||||
err := d.dirbuilder.ForEachLink(func(l *node.Link) error {
|
||||
err := d.dirbuilder.ForEachLink(ctx, func(l *node.Link) error {
|
||||
out = append(out, l.Name)
|
||||
return nil
|
||||
})
|
||||
@ -235,9 +235,9 @@ func (d *Directory) ListNames() ([]string, error) {
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (d *Directory) List() ([]NodeListing, error) {
|
||||
func (d *Directory) List(ctx context.Context) ([]NodeListing, error) {
|
||||
var out []NodeListing
|
||||
err := d.ForEachEntry(context.TODO(), func(nl NodeListing) error {
|
||||
err := d.ForEachEntry(ctx, func(nl NodeListing) error {
|
||||
out = append(out, nl)
|
||||
return nil
|
||||
})
|
||||
@ -247,7 +247,7 @@ func (d *Directory) List() ([]NodeListing, error) {
|
||||
func (d *Directory) ForEachEntry(ctx context.Context, f func(NodeListing) error) error {
|
||||
d.lock.Lock()
|
||||
defer d.lock.Unlock()
|
||||
return d.dirbuilder.ForEachLink(func(l *node.Link) error {
|
||||
return d.dirbuilder.ForEachLink(ctx, func(l *node.Link) error {
|
||||
c, err := d.childUnsync(l.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@ -82,6 +82,9 @@ func mkdirP(t *testing.T, root *Directory, pth string) *Directory {
|
||||
}
|
||||
|
||||
func assertDirAtPath(root *Directory, pth string, children []string) error {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
|
||||
fsn, err := DirLookup(root, pth)
|
||||
if err != nil {
|
||||
return err
|
||||
@ -92,7 +95,7 @@ func assertDirAtPath(root *Directory, pth string, children []string) error {
|
||||
return fmt.Errorf("%s was not a directory", pth)
|
||||
}
|
||||
|
||||
listing, err := dir.List()
|
||||
listing, err := dir.List(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -496,7 +499,7 @@ func TestMfsFile(t *testing.T) {
|
||||
|
||||
func randomWalk(d *Directory, n int) (*Directory, error) {
|
||||
for i := 0; i < n; i++ {
|
||||
dirents, err := d.List()
|
||||
dirents, err := d.List(context.Background())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -585,7 +588,7 @@ func actorRemoveFile(d *Directory) error {
|
||||
return err
|
||||
}
|
||||
|
||||
ents, err := d.List()
|
||||
ents, err := d.List(context.Background())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -605,7 +608,7 @@ func randomFile(d *Directory) (*File, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ents, err := d.List()
|
||||
ents, err := d.List(context.Background())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -953,6 +956,7 @@ func TestConcurrentReads(t *testing.T) {
|
||||
}
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
func writeFile(rt *Root, path string, data []byte) error {
|
||||
n, err := Lookup(rt, path)
|
||||
if err != nil {
|
||||
@ -975,8 +979,8 @@ func writeFile(rt *Root, path string, data []byte) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if nw != 10 {
|
||||
fmt.Errorf("wrote incorrect amount")
|
||||
if nw != len(data) {
|
||||
return fmt.Errorf("wrote incorrect amount: %d != 10", nw)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@ -351,17 +351,17 @@ func (ds *HamtShard) getValue(ctx context.Context, hv *hashBits, key string, cb
|
||||
return os.ErrNotExist
|
||||
}
|
||||
|
||||
func (ds *HamtShard) EnumLinks() ([]*node.Link, error) {
|
||||
func (ds *HamtShard) EnumLinks(ctx context.Context) ([]*node.Link, error) {
|
||||
var links []*node.Link
|
||||
err := ds.ForEachLink(func(l *node.Link) error {
|
||||
err := ds.ForEachLink(ctx, func(l *node.Link) error {
|
||||
links = append(links, l)
|
||||
return nil
|
||||
})
|
||||
return links, err
|
||||
}
|
||||
|
||||
func (ds *HamtShard) ForEachLink(f func(*node.Link) error) error {
|
||||
return ds.walkTrie(func(sv *shardValue) error {
|
||||
func (ds *HamtShard) ForEachLink(ctx context.Context, f func(*node.Link) error) error {
|
||||
return ds.walkTrie(ctx, func(sv *shardValue) error {
|
||||
lnk, err := node.MakeLink(sv.val)
|
||||
if err != nil {
|
||||
return err
|
||||
@ -373,7 +373,7 @@ func (ds *HamtShard) ForEachLink(f func(*node.Link) error) error {
|
||||
})
|
||||
}
|
||||
|
||||
func (ds *HamtShard) walkTrie(cb func(*shardValue) error) error {
|
||||
func (ds *HamtShard) walkTrie(ctx context.Context, cb func(*shardValue) error) error {
|
||||
for i := 0; i < ds.tableSize; i++ {
|
||||
if ds.bitfield.Bit(i) == 0 {
|
||||
continue
|
||||
@ -382,7 +382,7 @@ func (ds *HamtShard) walkTrie(cb func(*shardValue) error) error {
|
||||
idx := ds.indexForBitPos(i)
|
||||
// NOTE: an optimized version could simply iterate over each
|
||||
// element in the 'children' array.
|
||||
c, err := ds.getChild(context.TODO(), idx)
|
||||
c, err := ds.getChild(ctx, idx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -395,7 +395,7 @@ func (ds *HamtShard) walkTrie(cb func(*shardValue) error) error {
|
||||
}
|
||||
|
||||
case *HamtShard:
|
||||
err := c.walkTrie(cb)
|
||||
err := c.walkTrie(ctx, cb)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -72,6 +72,8 @@ func assertLink(s *HamtShard, name string, found bool) error {
|
||||
}
|
||||
|
||||
func assertSerializationWorks(ds dag.DAGService, s *HamtShard) error {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
nd, err := s.Node()
|
||||
if err != nil {
|
||||
return err
|
||||
@ -82,12 +84,12 @@ func assertSerializationWorks(ds dag.DAGService, s *HamtShard) error {
|
||||
return err
|
||||
}
|
||||
|
||||
linksA, err := s.EnumLinks()
|
||||
linksA, err := s.EnumLinks(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
linksB, err := nds.EnumLinks()
|
||||
linksB, err := nds.EnumLinks(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -160,7 +162,8 @@ func TestDirBuilding(t *testing.T) {
|
||||
func TestShardReload(t *testing.T) {
|
||||
ds := mdtest.Mock()
|
||||
s, _ := NewHamtShard(ds, 256)
|
||||
ctx := context.Background()
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
|
||||
_, s, err := makeDir(ds, 200)
|
||||
if err != nil {
|
||||
@ -177,7 +180,7 @@ func TestShardReload(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
lnks, err := nds.EnumLinks()
|
||||
lnks, err := nds.EnumLinks(ctx)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -270,7 +273,7 @@ func TestSetAfterMarshal(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
links, err := nds.EnumLinks()
|
||||
links, err := nds.EnumLinks(ctx)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -301,7 +304,7 @@ func TestDuplicateAddShard(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
lnks, err := dir.EnumLinks()
|
||||
lnks, err := dir.EnumLinks(ctx)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -393,7 +396,7 @@ func TestRemoveElemsAfterMarshal(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
links, err := nds.EnumLinks()
|
||||
links, err := nds.EnumLinks(ctx)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@ -169,7 +169,10 @@ func TestMetadataNode(t *testing.T) {
|
||||
ctx, closer := context.WithCancel(context.Background())
|
||||
defer closer()
|
||||
|
||||
data, err := unixfs.BytesForMetadata(&unixfs.Metadata{"text", 125})
|
||||
data, err := unixfs.BytesForMetadata(&unixfs.Metadata{
|
||||
MimeType: "text",
|
||||
Size: 125,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@ -119,7 +119,7 @@ func (d *Directory) switchToSharding(ctx context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *Directory) ForEachLink(f func(*node.Link) error) error {
|
||||
func (d *Directory) ForEachLink(ctx context.Context, f func(*node.Link) error) error {
|
||||
if d.shard == nil {
|
||||
for _, l := range d.dirnode.Links() {
|
||||
if err := f(l); err != nil {
|
||||
@ -129,15 +129,15 @@ func (d *Directory) ForEachLink(f func(*node.Link) error) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
return d.shard.ForEachLink(f)
|
||||
return d.shard.ForEachLink(ctx, f)
|
||||
}
|
||||
|
||||
func (d *Directory) Links() ([]*node.Link, error) {
|
||||
func (d *Directory) Links(ctx context.Context) ([]*node.Link, error) {
|
||||
if d.shard == nil {
|
||||
return d.dirnode.Links(), nil
|
||||
}
|
||||
|
||||
return d.shard.EnumLinks()
|
||||
return d.shard.EnumLinks(ctx)
|
||||
}
|
||||
|
||||
func (d *Directory) Find(ctx context.Context, name string) (node.Node, error) {
|
||||
|
||||
@ -38,7 +38,7 @@ func TestDirectoryGrowth(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
links, err := dir.Links()
|
||||
links, err := dir.Links(ctx)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -86,7 +86,7 @@ func TestDuplicateAddDir(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
lnks, err := dir.Links()
|
||||
lnks, err := dir.Links(ctx)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -121,7 +121,7 @@ func TestDirBuilder(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
links, err := dir.Links()
|
||||
links, err := dir.Links(ctx)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -135,7 +135,7 @@ func TestDirBuilder(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
links, err = adir.Links()
|
||||
links, err = adir.Links(ctx)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user