aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorGian-Carlo DeFazio <[email protected]>2023-01-12 10:14:04 -0800
committerGitHub <[email protected]>2023-01-12 10:14:04 -0800
commit80d64bb85fcfb07b9fb57ed75bf6356239632ba2 (patch)
treebc34b7d7efecda164d725a5fc454d42638fbf1da /include
parenteee9362a72cfd615e40928e86d61747683dc9dc6 (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.h8
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);