+ while (next != &this_parent->d_subdirs) {
+ struct list_head *tmp = next;
+ struct dentry *dentry = list_entry(tmp, struct dentry,
-+ d_u.d_child);
++ d_child);
+
+ next = tmp->next;
+ spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED);
+ this_parent = tmp;
+ spin_lock(&this_parent->d_lock);
+ rcu_read_unlock();
-+ next = child->d_u.d_child.next;
++ next = child->d_child.next;
+ goto resume;
+ }
+
+ struct dentry *d;
+
+ spin_lock(&inode->i_lock);
-+ hlist_for_each_entry(d, &inode->i_dentry, d_alias)
++ hlist_for_each_entry(d, &inode->i_dentry, d_u.d_alias)
+ au_dpri_dentry(d);
+ spin_unlock(&inode->i_lock);
+}
+ dentry = d_find_alias(inode);
+ else {
+ spin_lock(&inode->i_lock);
-+ hlist_for_each_entry(d, &inode->i_dentry, d_alias) {
++ hlist_for_each_entry(d, &inode->i_dentry, d_u.d_alias) {
+ spin_lock(&d->d_lock);
+ if (!au_test_anon(d)
+ && d->d_parent->d_inode->i_ino == dir_ino) {
+ AuDebugOn(!name);
+ au_iigen_dec(inode);
+ spin_lock(&inode->i_lock);
-+ hlist_for_each_entry(d, &inode->i_dentry, d_alias) {
++ hlist_for_each_entry(d, &inode->i_dentry, d_u.d_alias) {
+ spin_lock(&d->d_lock);
+ dname = &d->d_name;
+ if (dname->len != nlen
+
+ dentry = NULL;
+ spin_lock(&parent->d_lock);
-+ list_for_each_entry(d, &parent->d_subdirs, d_u.d_child) {
++ list_for_each_entry(d, &parent->d_subdirs, d_child) {
+ /* AuDbg("%pd\n", d); */
+ spin_lock_nested(&d->d_lock, DENTRY_D_LOCK_NESTED);
+ dname = &d->d_name;
- struct dentry *cursor = file->private_data;
+ struct dentry *dentry = filp->f_path.dentry;
+ struct dentry *cursor = filp->private_data;
- struct list_head *p, *q = &cursor->d_u.d_child;
+ struct list_head *p, *q = &cursor->d_child;
- if (!dir_emit_dots(file, ctx))
+ if (!dir_emit_dots(filp, ctx))
@@ -159,6 +160,8 @@ int dcache_readdir(struct file *file, st
for (p = q->next; p != &dentry->d_subdirs; p = p->next) {
- struct dentry *next = list_entry(p, struct dentry, d_u.d_child);
+ struct dentry *next = list_entry(p, struct dentry, d_child);
+ if (filter && !filter(next))
+ continue;
spin_lock_nested(&next->d_lock, DENTRY_D_LOCK_NESTED);
%define rel 1
%define basever 3.14
-%define postver .39
+%define postver .40
%define versuffix -%{basever}
# Source0-md5: b621207b3f6ecbb67db18b13258f8ea8
%if "%{postver}" != ".0"
Patch0: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.xz
-# Patch0-md5: 218b2bb75d29f418f855c321226d6649
+# Patch0-md5: 66247eb18af8498a9131d675d5ce4609
%endif
Source1: kernel.sysconfig