diff options
author | Gian-Carlo DeFazio <[email protected]> | 2023-01-12 10:14:04 -0800 |
---|---|---|
committer | GitHub <[email protected]> | 2023-01-12 10:14:04 -0800 |
commit | 80d64bb85fcfb07b9fb57ed75bf6356239632ba2 (patch) | |
tree | bc34b7d7efecda164d725a5fc454d42638fbf1da /include | |
parent | eee9362a72cfd615e40928e86d61747683dc9dc6 (diff) |
change how d_alias is replaced by du.d_alias
d_alias may need to be converted to du.d_alias
depending on the kernel version.
d_alias is currently in only one place in the code which
changes
"hlist_for_each_entry(dentry, &inode->i_dentry, d_alias)"
to
"hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias)"
as neccesary.
This effectively results in a double macro expansion
for code that uses the zfs headers but already has its
own macro for just d_alias (lustre in this case).
Remove the conditional code for hlist_for_each_entry
and have a macro for "d_alias -> du.d_alias" instead.
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Gian-Carlo DeFazio <[email protected]>
Closes #14377
Diffstat (limited to 'include')
-rw-r--r-- | include/os/linux/kernel/linux/dcache_compat.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/include/os/linux/kernel/linux/dcache_compat.h b/include/os/linux/kernel/linux/dcache_compat.h index 4de1118da..c43e5b142 100644 --- a/include/os/linux/kernel/linux/dcache_compat.h +++ b/include/os/linux/kernel/linux/dcache_compat.h @@ -35,6 +35,10 @@ #define d_make_root(inode) d_alloc_root(inode) #endif /* HAVE_D_MAKE_ROOT */ +#ifdef HAVE_DENTRY_D_U_ALIASES +#define d_alias d_u.d_alias +#endif + /* * 2.6.30 API change, * The const keyword was added to the 'struct dentry_operations' in @@ -70,11 +74,7 @@ zpl_d_drop_aliases(struct inode *inode) { struct dentry *dentry; spin_lock(&inode->i_lock); -#ifdef HAVE_DENTRY_D_U_ALIASES - hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) { -#else hlist_for_each_entry(dentry, &inode->i_dentry, d_alias) { -#endif if (!IS_ROOT(dentry) && !d_mountpoint(dentry) && (dentry->d_inode == inode)) { d_drop(dentry); |