From 5aae6e0c183cf6dccf7dcf6511217b300d0f3767 Mon Sep 17 00:00:00 2001 From: Marc Dionne Date: Mon, 15 Oct 2012 12:26:09 -0400 Subject: [PATCH] Linux 3.7: putname is no longer exported putname is unexported in kernel 3.7. Add a compatibility inline afs_putname function and open code it if necessary. Reviewed-on: http://gerrit.openafs.org/8237 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit fa3116567e2998af73eb116751032713850c9459) Change-Id: Icf0e249f87bfe80a262e5599ab9958355ed9a90f Reviewed-on: http://gerrit.openafs.org/8336 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- acinclude.m4 | 4 ++++ src/afs/LINUX/osi_compat.h | 9 +++++++++ src/afs/LINUX/osi_misc.c | 4 ++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index b61f55c61..dec509ea6 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -891,6 +891,10 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) [#include #include ], [path_lookup(NULL, 0, NULL);]) + AC_CHECK_LINUX_FUNC([putname], + [#include + #include ], + [putname(NULL);]) AC_CHECK_LINUX_FUNC([rcu_read_lock], [#include ], [rcu_read_lock();]) diff --git a/src/afs/LINUX/osi_compat.h b/src/afs/LINUX/osi_compat.h index 84fcaa5d7..8c0b8050e 100644 --- a/src/afs/LINUX/osi_compat.h +++ b/src/afs/LINUX/osi_compat.h @@ -461,4 +461,13 @@ afs_dentry_open(struct dentry *dp, struct vfsmount *mnt, int flags, const struct } #endif +static inline void +afs_putname(struct filename *name) { +#if defined(HAVE_LINUX_PUTNAME) + putname(name); +#else + kmem_cache_free(names_cachep, (void *)name); +#endif +} + #endif /* AFS_LINUX_OSI_COMPAT_H */ diff --git a/src/afs/LINUX/osi_misc.c b/src/afs/LINUX/osi_misc.c index fb740db97..49da7f1a8 100644 --- a/src/afs/LINUX/osi_misc.c +++ b/src/afs/LINUX/osi_misc.c @@ -93,7 +93,7 @@ osi_lookupname(char *aname, uio_seg_t seg, int followlink, } code = osi_lookupname_internal(tname, followlink, NULL, dpp); if (seg == AFS_UIOUSER) { - putname(tname); + afs_putname(tname); } return code; } @@ -129,7 +129,7 @@ int osi_abspath(char *aname, char *buf, int buflen, mntput(mnt); } - putname(tname); + afs_putname(tname); return code; } -- 2.39.5