On Wed 03-04-24 10:10:08, linke li wrote: > Currently, the __d_clear_type_and_inode() writes the value flags to > dentry->d_flags, then immediately re-reads it in order to use it in a if > statement. This re-read is useless because no other update to > dentry->d_flags can occur at this point. > > This commit therefore re-use flags in the if statement instead of > re-reading dentry->d_flags. > > Signed-off-by: linke li <lilinke99@xxxxxx> Indeed, this seems pointless and actually a bit confusing. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/dcache.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/dcache.c b/fs/dcache.c > index b813528fb147..79da415d7995 100644 > --- a/fs/dcache.c > +++ b/fs/dcache.c > @@ -355,7 +355,7 @@ static inline void __d_clear_type_and_inode(struct dentry *dentry) > flags &= ~DCACHE_ENTRY_TYPE; > WRITE_ONCE(dentry->d_flags, flags); > dentry->d_inode = NULL; > - if (dentry->d_flags & DCACHE_LRU_LIST) > + if (flags & DCACHE_LRU_LIST) > this_cpu_inc(nr_dentry_negative); > } > > -- > 2.39.3 (Apple Git-146) > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR