int error;
if (flags & LOOKUP_RCU) {
- parent = rcu_dereference(dentry->d_parent);
+ parent = ACCESS_ONCE(dentry->d_parent);
dir = ACCESS_ONCE(parent->d_inode);
if (!dir)
return -ECHILD;
nfs_advise_use_readdirplus(dir);
out_valid_noent:
if (flags & LOOKUP_RCU) {
- if (parent != rcu_dereference(dentry->d_parent))
+ if (parent != ACCESS_ONCE(dentry->d_parent))
return -ECHILD;
} else
dput(parent);
struct inode *dir;
if (flags & LOOKUP_RCU) {
- parent = rcu_dereference(dentry);
+ parent = ACCESS_ONCE(dentry->d_parent);
dir = ACCESS_ONCE(parent->d_inode);
if (!dir)
return -ECHILD;
ret = -ECHILD;
if (!(flags & LOOKUP_RCU))
dput(parent);
- else if (parent != rcu_dereference(dentry))
+ else if (parent != ACCESS_ONCE(dentry->d_parent))
return -ECHILD;
goto out;
}