From 4c4fb6e36634e5663c8be25acd4a1ac872e4738c Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Tue, 23 Jul 2019 13:50:31 -0500 Subject: [PATCH] LINUX: Introduce afs_d_path Move our preprocessor logic around d_path into an osi_compat.h wrapper, called afs_d_path. This just makes it a little easier to use d_path, and moves a tiny bit of #ifdef cruft away from real code. Change-Id: I2032eda3fef18be6e77e3bf362ec5ce641e1d76d Reviewed-on: https://gerrit.openafs.org/13721 Reviewed-by: Benjamin Kaduk Tested-by: BuildBot --- src/afs/LINUX/osi_compat.h | 11 +++++++++++ src/afs/LINUX/osi_misc.c | 8 +------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/afs/LINUX/osi_compat.h b/src/afs/LINUX/osi_compat.h index 4999b89b93..374e721864 100644 --- a/src/afs/LINUX/osi_compat.h +++ b/src/afs/LINUX/osi_compat.h @@ -722,4 +722,15 @@ afs_file_write(struct file *filp, char __user *buf, size_t len, loff_t *pos) #endif } +static inline char* +afs_d_path(struct dentry *dp, struct vfsmount *mnt, char *buf, int buflen) +{ +#ifdef D_PATH_TAKES_STRUCT_PATH + afs_linux_path_t p = { .mnt = mnt, .dentry = dp }; + return d_path(&p, buf, buflen); +#else + return d_path(dp, mnt, buf, buflen); +#endif +} + #endif /* AFS_LINUX_OSI_COMPAT_H */ diff --git a/src/afs/LINUX/osi_misc.c b/src/afs/LINUX/osi_misc.c index 0e9336db66..aa5d5fc936 100644 --- a/src/afs/LINUX/osi_misc.c +++ b/src/afs/LINUX/osi_misc.c @@ -138,13 +138,7 @@ int osi_abspath(char *aname, char *buf, int buflen, return -PTR_ERR(name); code = osi_lookupname_internal(name, followlink, &mnt, &dp); if (!code) { -#if defined(D_PATH_TAKES_STRUCT_PATH) - afs_linux_path_t p = { .mnt = mnt, .dentry = dp }; - path = d_path(&p, buf, buflen); -#else - path = d_path(dp, mnt, buf, buflen); -#endif - + path = afs_d_path(dp, mnt, buf, buflen); if (IS_ERR(path)) { code = -PTR_ERR(path); } else {