struct dentry *dentry = file->f_path.dentry;
struct dentry *cursor = file->private_data;
@@ -194,9 +195,10 @@ int dcache_readdir(struct file *file, st
- if (ctx->pos == 2)
- p = &dentry->d_subdirs;
- while ((next = next_positive(dentry, p, 1)) != NULL) {
+ p = &cursor->d_child;
+
+ while ((p = scan_positives(cursor, p, 1, &next)) != anchor) {
- if (!dir_emit(ctx, next->d_name.name, next->d_name.len,
+ if (!filter || filter(next))
+ if (!dir_emit(ctx, next->d_name.name, next->d_name.len,
d_inode(next)->i_ino, dt_type(d_inode(next))))
- break;
+ break;
- moved = true;
- p = &next->d_child;
ctx->pos++;
+ }
+ spin_lock(&dentry->d_lock);
@@ -205,8 +207,22 @@ int dcache_readdir(struct file *file, st
move_cursor(cursor, p);
return 0;
%define rel 1
%define basever 4.9
-%define postver .196
+%define postver .197
# define this to '-%{basever}' for longterm branch
%define versuffix -%{basever}
# Source0-md5: 0a68ef3615c64bd5ee54a3320e46667d
%if "%{postver}" != ".0"
Patch0: https://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz
-# Patch0-md5: e03f73af8b9bbc21825cb7892e933420
+# Patch0-md5: 7a3f3aa9bea6fa07bbdbad94518015fd
%endif
Source1: kernel.sysconfig