[readdir] introduce iterate_dir() and dir_context
iterate_dir(): new helper, replacing vfs_readdir(). struct dir_context: contains the readdir callback (and will get more stuff in it), embedded into whatever data that callback wants to deal with; eventually, we'll be passing it to ->readdir() replacement instead of (data,filldir) pair. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
这个提交包含在:
@@ -60,6 +60,7 @@ struct hpux_dirent {
|
||||
};
|
||||
|
||||
struct getdents_callback {
|
||||
struct dir_context ctx;
|
||||
struct hpux_dirent __user *current_dir;
|
||||
struct hpux_dirent __user *previous;
|
||||
int count;
|
||||
@@ -121,8 +122,9 @@ int hpux_getdents(unsigned int fd, struct hpux_dirent __user *dirent, unsigned i
|
||||
buf.previous = NULL;
|
||||
buf.count = count;
|
||||
buf.error = 0;
|
||||
buf.ctx.actor = filldir;
|
||||
|
||||
error = vfs_readdir(arg.file, filldir, &buf);
|
||||
error = iterate_dir(arg.file, &buf.ctx);
|
||||
if (error >= 0)
|
||||
error = buf.error;
|
||||
lastdirent = buf.previous;
|
||||
|
在新工单中引用
屏蔽一个用户