LINUX: Introduce afs_d_path 21/13721/3
authorAndrew Deason <adeason@sinenomine.net>
Tue, 23 Jul 2019 18:50:31 +0000 (13:50 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Thu, 2 Apr 2020 04:29:48 +0000 (00:29 -0400)
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 <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/afs/LINUX/osi_compat.h
src/afs/LINUX/osi_misc.c

index 4999b89..374e721 100644 (file)
@@ -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 */
index 0e9336d..aa5d5fc 100644 (file)
@@ -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 {