Lines Matching defs:alias
966 struct dentry *alias;
970 alias = hlist_entry(inode->i_dentry.first, struct dentry, d_u.d_alias);
971 __dget(alias);
972 return alias;
976 * d_find_any_alias - find any alias for a given inode
977 * @inode: inode to find an alias for
994 * d_find_alias - grab a hashed alias of inode
997 * If inode has a hashed alias, or is a directory and has any alias,
998 * acquire the reference to alias and return it. Otherwise return NULL.
999 * Notice that if inode is a directory there can be only one alias and
1004 * If the inode has an IS_ROOT, DCACHE_DISCONNECTED alias, then prefer
1005 * any other hashed alias over that one.
1009 struct dentry *alias;
1014 hlist_for_each_entry(alias, &inode->i_dentry, d_u.d_alias) {
1015 spin_lock(&alias->d_lock);
1016 if (!d_unhashed(alias)) {
1017 __dget_dlock(alias);
1018 spin_unlock(&alias->d_lock);
1019 return alias;
1021 spin_unlock(&alias->d_lock);
2707 * d_exact_alias - find and hash an exact unhashed alias
2719 struct dentry *alias;
2723 hlist_for_each_entry(alias, &inode->i_dentry, d_u.d_alias) {
2725 * Don't need alias->d_lock here, because aliases with
2729 if (alias->d_name.hash != hash)
2731 if (alias->d_parent != entry->d_parent)
2733 if (!d_same_name(alias, entry->d_parent, &entry->d_name))
2735 spin_lock(&alias->d_lock);
2736 if (!d_unhashed(alias)) {
2737 spin_unlock(&alias->d_lock);
2738 alias = NULL;
2740 __dget_dlock(alias);
2741 __d_rehash(alias);
2742 spin_unlock(&alias->d_lock);
2745 return alias;
2969 struct dentry *dentry, struct dentry *alias)
2975 /* If alias and dentry share a parent, then no extra locks required */
2976 if (alias->d_parent == dentry->d_parent)
2983 if (!inode_trylock_shared(alias->d_parent->d_inode))
2985 m2 = &alias->d_parent->d_inode->i_rwsem;
2987 __d_move(alias, dentry, false);
3002 * If inode is a directory and has an IS_ROOT alias, then d_move that in
3035 /* The reference to new ensures it remains an alias */