commit 5d8df008aeeaf963b0f5ab9c77c7ec8dc96b8d04
parent 7af35432538fdae5ad2f6b3d4a469e37ea877a65
Author: Matsuda Kenji <info@mtkn.jp>
Date: Wed, 25 Oct 2023 06:40:34 +0900
change dirfs.File.ReadDir to use os.File.ReadDir, not os.ReadDir
Diffstat:
1 file changed, 5 insertions(+), 18 deletions(-)
diff --git a/diskfs/file.go b/diskfs/file.go
@@ -2,7 +2,6 @@ package diskfs
import (
"fmt"
- "io"
"io/fs"
"os"
"os/user"
@@ -120,30 +119,18 @@ func (f *File) Read(b []byte) (int, error) {
// If it encounters an error before the end of the directory,
// ReadDir returns the DirEntry list read until that point and a non-nil error.
func (f *File) ReadDir(n int) ([]*lib9p.DirEntry, error) {
- ospath := filepath.Join(f.fs.rootPath, f.path)
- osde, err := os.ReadDir(ospath)
+ osde, err := f.file.ReadDir(n)
if err != nil {
return nil, fmt.Errorf("readdir: %v", err)
}
- if len(osde) <= f.dirIndex {
- return nil, io.EOF
- }
- de := make([]*lib9p.DirEntry, len(osde) - f.dirIndex)
- var m int
- if n <= 0 {
- m = len(osde)
- } else if len(osde) - f.dirIndex > n {
- m = f.dirIndex + n
- } else {
- m = len(osde)
- }
- for i := f.dirIndex; i < m; i++ {
- fi, err := osde[i].Info()
+ de := make([]*lib9p.DirEntry, len(osde))
+ for i, e := range osde {
+ fi, err := e.Info()
if err != nil {
return nil, fmt.Errorf("info: %v", err)
}
id := idFromInfo(fi)
- de[i - f.dirIndex] = &lib9p.DirEntry{Stat: *fiStat(f.fs.qidPool, id, fi)}
+ de[i] = &lib9p.DirEntry{Stat: *fiStat(f.fs.qidPool, id, fi)}
}
return de, nil
}