From: He Kuang Date: Sat, 26 Mar 2016 09:12:10 +0000 (+0000) Subject: dentry_cmp(): use lockless_dereference() instead of smp_read_barrier_depends() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=ae0a843c740b4e63684eefae96097cf62d9b7a14;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git dentry_cmp(): use lockless_dereference() instead of smp_read_barrier_depends() lockless_dereference() was added which can be used in place of hard-coding smp_read_barrier_depends(). Signed-off-by: He Kuang Signed-off-by: Al Viro --- diff --git a/fs/dcache.c b/fs/dcache.c index e5c8ba76d426..dc37c0238b46 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -226,10 +226,9 @@ static inline int dentry_string_cmp(const unsigned char *cs, const unsigned char static inline int dentry_cmp(const struct dentry *dentry, const unsigned char *ct, unsigned tcount) { - const unsigned char *cs; /* * Be careful about RCU walk racing with rename: - * use ACCESS_ONCE to fetch the name pointer. + * use 'lockless_dereference' to fetch the name pointer. * * NOTE! Even if a rename will mean that the length * was not loaded atomically, we don't care. The @@ -243,8 +242,8 @@ static inline int dentry_cmp(const struct dentry *dentry, const unsigned char *c * early because the data cannot match (there can * be no NUL in the ct/tcount data) */ - cs = ACCESS_ONCE(dentry->d_name.name); - smp_read_barrier_depends(); + const unsigned char *cs = lockless_dereference(dentry->d_name.name); + return dentry_string_cmp(cs, ct, tcount); }