Ahh. A light finally goes on. No on the first filldir() callback, but on
the second.
Yeah, so this should fix it.
Linus
---
fs/readdir.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/readdir.c b/fs/readdir.c
index 4e026e5..4899ba4 100644
--- a/fs/readdir.c
+++ b/fs/readdir.c
@@ -115,7 +115,7 @@ asmlinkage long old_readdir(unsigned int fd, struct old_linux_dirent __user * di
buf.dirent = dirent;
error = vfs_readdir(file, fillonedir, &buf);
- if (error >= 0)
+ if (buf.result || error >= 0)
error = buf.result;
fput(file);
--