Re: Potential data race in dput and __d_lookup

From: Al Viro
Date: Thu Nov 20 2014 - 13:05:25 EST

On Thu, Nov 20, 2014 at 09:20:14PM +0400, Andrey Konovalov wrote:

> It seems that one thread increments 'dentry->d_lockref.count', while
> other does 'lockref_put_or_lock(&dentry->d_lockref)' without any
> synchronization.
> Could you confirm if this is a real race?

I can not. Increment in __d_lookup() is under ->d_lockref.lock (aka
->d_lock) and lockref_put_or_lock() is atomic wrt that.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at