summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2013-05-16 00:49:12 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2013-06-29 10:46:47 +0200
commitbb6f619b3a49f940d7478112500da312d70866eb (patch)
tree4e17d6ed5b965eaec2e55b11b61145b200d28f0f /arch
parent[readdir] introduce iterate_dir() and dir_context (diff)
downloadlinux-bb6f619b3a49f940d7478112500da312d70866eb.tar.xz
linux-bb6f619b3a49f940d7478112500da312d70866eb.zip
[readdir] introduce ->iterate(), ctx->pos, dir_emit()
New method - ->iterate(file, ctx). That's the replacement for ->readdir(); it takes callback from ctx->actor, uses ctx->pos instead of file->f_pos and calls dir_emit(ctx, ...) instead of filldir(data, ...). It does *not* update file->f_pos (or look at it, for that matter); iterate_dir() does the update. Note that dir_emit() takes the offset from ctx->pos (and eventually filldir_t will lose that argument). Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r--arch/parisc/hpux/fs.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/parisc/hpux/fs.c b/arch/parisc/hpux/fs.c
index fc2cbee86e34..eca8230267cc 100644
--- a/arch/parisc/hpux/fs.c
+++ b/arch/parisc/hpux/fs.c
@@ -129,7 +129,7 @@ int hpux_getdents(unsigned int fd, struct hpux_dirent __user *dirent, unsigned i
error = buf.error;
lastdirent = buf.previous;
if (lastdirent) {
- if (put_user(arg.file->f_pos, &lastdirent->d_off))
+ if (put_user(buf.ctx.pos, &lastdirent->d_off))
error = -EFAULT;
else
error = count - buf.count;