|
@@ -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,
|
|
|
};
|
|
|
|