[readdir] convert hostfs
authorAl Viro <viro@zeniv.linux.org.uk>
Wed, 22 May 2013 20:34:19 +0000 (16:34 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sat, 29 Jun 2013 08:56:59 +0000 (12:56 +0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/hostfs/hostfs_kern.c

index 32f35f1..cddb052 100644 (file)
@@ -277,7 +277,7 @@ static const struct super_operations hostfs_sbops = {
        .show_options   = hostfs_show_options,
 };
 
-int hostfs_readdir(struct file *file, void *ent, filldir_t filldir)
+int hostfs_readdir(struct file *file, struct dir_context *ctx)
 {
        void *dir;
        char *name;
@@ -292,12 +292,11 @@ int hostfs_readdir(struct file *file, void *ent, filldir_t filldir)
        __putname(name);
        if (dir == NULL)
                return -error;
-       next = file->f_pos;
+       next = ctx->pos;
        while ((name = read_dir(dir, &next, &ino, &len, &type)) != NULL) {
-               error = (*filldir)(ent, name, len, file->f_pos,
-                                  ino, type);
-               if (error) break;
-               file->f_pos = next;
+               if (!dir_emit(ctx, name, len, ino, type))
+                       break;
+               ctx->pos = next;
        }
        close_dir(dir);
        return 0;
@@ -393,7 +392,7 @@ static const struct file_operations hostfs_file_fops = {
 
 static const struct file_operations hostfs_dir_fops = {
        .llseek         = generic_file_llseek,
-       .readdir        = hostfs_readdir,
+       .iterate        = hostfs_readdir,
        .read           = generic_read_dir,
 };