From 0da75080fe449b1214436dc8c5ba1d43d3a006df Mon Sep 17 00:00:00 2001 From: linfangrong Date: Wed, 6 Aug 2025 15:46:44 +0800 Subject: [PATCH] fix(client): Fixed issues #3586 readdir offset Signed-off-by: linfangrong --- client/fs/dir.go | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/client/fs/dir.go b/client/fs/dir.go index 7eb54af61..a379f7c25 100644 --- a/client/fs/dir.go +++ b/client/fs/dir.go @@ -462,19 +462,14 @@ func (d *Dir) ReadDir(ctx context.Context, req *fuse.ReadRequest, resp *fuse.Rea metric.SetWithLabels(err, map[string]string{exporter.Vol: d.super.volname}) d.super.runningMonitor.SubClientOp(runningStat, err) }() - var dirCtx DirContext - if req.Offset != 0 { - dirCtx = d.dctx.GetCopy(req.Handle) - } else { - dirCtx = DirContext{} - } + var dirCtx DirContext = d.dctx.GetCopy(req.Handle) children, err := d.super.mw.ReadDirLimit_ll(d.info.Inode, dirCtx.Name, limit) if err != nil { log.LogErrorf("readdirlimit: Readdir: ino(%v) err(%v) offset %v", d.info.Inode, err, req.Offset) return make([]fuse.Dirent, 0), ParseError(err) } - if req.Offset == 0 { + if dirCtx.Name == "" { if len(children) == 0 { dirents := make([]fuse.Dirent, 0, len(children)) dirents = append(dirents, fuse.Dirent{