summaryrefslogtreecommitdiffstats
path: root/fs/exportfs/expfs.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2016-04-21 05:08:32 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2016-05-03 01:49:29 +0200
commit6192269444ebfbfb42e23c7a6a93c76ffe4b5e51 (patch)
treeec40fbbad46725d88f2c16b11ff5976d87f497bb /fs/exportfs/expfs.c
parentgive readdir(2)/getdents(2)/etc. uniform exclusion with lseek() (diff)
downloadlinux-6192269444ebfbfb42e23c7a6a93c76ffe4b5e51.tar.xz
linux-6192269444ebfbfb42e23c7a6a93c76ffe4b5e51.zip
introduce a parallel variant of ->iterate()
New method: ->iterate_shared(). Same arguments as in ->iterate(), called with the directory locked only shared. Once all filesystems switch, the old one will be gone. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/exportfs/expfs.c')
-rw-r--r--fs/exportfs/expfs.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/exportfs/expfs.c b/fs/exportfs/expfs.c
index 402c5caab5ca..207ba8d627ca 100644
--- a/fs/exportfs/expfs.c
+++ b/fs/exportfs/expfs.c
@@ -312,7 +312,7 @@ static int get_name(const struct path *path, char *name, struct dentry *child)
goto out;
error = -EINVAL;
- if (!file->f_op->iterate)
+ if (!file->f_op->iterate && !file->f_op->iterate_shared)
goto out_close;
buffer.sequence = 0;