diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2013-05-22 16:34:19 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-06-29 12:56:59 +0400 |
commit | 8e28bc7e71c84bc3d906dbb694f341b33f6cd8fc (patch) | |
tree | 91a09e62ecac0d0a04a10a65fc00917cf8c2b9f8 /fs/hostfs | |
parent | 1bbae9f818609959b8ffc0bf61ba8026a7059426 (diff) | |
download | linux-8e28bc7e71c84bc3d906dbb694f341b33f6cd8fc.tar.gz linux-8e28bc7e71c84bc3d906dbb694f341b33f6cd8fc.tar.bz2 linux-8e28bc7e71c84bc3d906dbb694f341b33f6cd8fc.zip |
[readdir] convert hostfs
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/hostfs')
-rw-r--r-- | fs/hostfs/hostfs_kern.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c index 32f35f187989..cddb05217512 100644 --- a/fs/hostfs/hostfs_kern.c +++ b/fs/hostfs/hostfs_kern.c @@ -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, }; |