On Tue, Jan 05, 2021 at 04:50:05PM +0000, Al Viro wrote:

> struct dentry *d_find_alias_rcu(struct inode *inode)
> {
>       struct hlist_head *l = &inode->i_dentry;
>         struct dentry *de = NULL;
> 
>       spin_lock(&inode->i_lock);
>       // ->i_dentry and ->i_rcu are colocated, but the latter won't be
>       // used without having I_FREEING set, which means no aliases left
>       if (inode->i_state & I_FREEING) {
>               spin_unlock(&inode->i_lock);
>               return NULL;
>       }
>       // we can safely access inode->i_dentry
>         if (hlist_empty(p)) {

        if (hlist_empty(l)) {

obviously...

Reply via email to