Commit 8cc07c80 authored by Will Deacon's avatar Will Deacon Committed by Al Viro

fs: dcache: Use READ_ONCE when accessing i_dir_seq

i_dir_seq is subject to concurrent modification by a cmpxchg or
store-release operation, so ensure that the relaxed access in
d_alloc_parallel uses READ_ONCE.
Reported-by: default avatarPeter Zijlstra <peterz@infradead.org>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 015555fd
...@@ -2507,7 +2507,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent, ...@@ -2507,7 +2507,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent,
} }
hlist_bl_lock(b); hlist_bl_lock(b);
if (unlikely(parent->d_inode->i_dir_seq != seq)) { if (unlikely(READ_ONCE(parent->d_inode->i_dir_seq) != seq)) {
hlist_bl_unlock(b); hlist_bl_unlock(b);
rcu_read_unlock(); rcu_read_unlock();
goto retry; goto retry;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment