From 18fce98ceef049fe53bdb48c4fbfaa8bb833f6e6 Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Fri, 1 Apr 2005 21:07:35 +0000 Subject: fix --- kernel/dir.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'kernel/dir.c') diff --git a/kernel/dir.c b/kernel/dir.c index ecd6108..093bbb9 100644 --- a/kernel/dir.c +++ b/kernel/dir.c @@ -506,19 +506,19 @@ static int parse_dirfile(char *buf, size_t nbytes, struct file *file, struct fuse_dirent *dirent = (struct fuse_dirent *) buf; size_t reclen = FUSE_DIRENT_SIZE(dirent); int over; - if (dirent->namelen > FUSE_NAME_MAX) + if (!dirent->namelen || dirent->namelen > FUSE_NAME_MAX) return -EIO; if (reclen > nbytes) break; over = filldir(dstbuf, dirent->name, dirent->namelen, - dirent->off, dirent->ino, dirent->type); + file->f_pos, dirent->ino, dirent->type); if (over) break; buf += reclen; - file->f_pos += reclen; nbytes -= reclen; + file->f_pos = dirent->off; } return 0; -- cgit v1.2.3