introduce iterate_dir() and dir_context
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / fs / ecryptfs / file.c
index d4644cc938ba146bbf7be6bdd3c0f2aa02cf9014..fac9d0125fb6957519cad83b7919b4715222a6e9 100644 (file)
@@ -68,6 +68,7 @@ static ssize_t ecryptfs_read_update_atime(struct kiocb *iocb,
 }
 
 struct ecryptfs_getdents_callback {
+       struct dir_context ctx;
        void *dirent;
        struct dentry *dentry;
        filldir_t filldir;
@@ -126,7 +127,8 @@ static int ecryptfs_readdir(struct file *file, void *dirent, filldir_t filldir)
        buf.filldir = filldir;
        buf.filldir_called = 0;
        buf.entries_written = 0;
-       rc = vfs_readdir(lower_file, ecryptfs_filldir, (void *)&buf);
+       buf.ctx.actor = ecryptfs_filldir;
+       rc = iterate_dir(lower_file, &buf.ctx);
        file->f_pos = lower_file->f_pos;
        if (rc < 0)
                goto out;