putname is unexported in kernel 3.7. Add a compatibility inline
afs_putname function and open code it if necessary.
Change-Id: I5416067566f6332d77e5d91ce2b9cf7bc0c96dce
Reviewed-on: http://gerrit.openafs.org/8237
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
[#include <linux/fs.h>
#include <linux/namei.h>],
[path_lookup(NULL, 0, NULL);])
+ AC_CHECK_LINUX_FUNC([putname],
+ [#include <linux/fs.h>
+ #include <linux/namei.h>],
+ [putname(NULL);])
AC_CHECK_LINUX_FUNC([rcu_read_lock],
[#include <linux/rcupdate.h>],
[rcu_read_lock();])
}
#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 */
}
code = osi_lookupname_internal(tname, followlink, NULL, dpp);
if (seg == AFS_UIOUSER) {
- putname(tname);
+ afs_putname(tname);
}
return code;
}
mntput(mnt);
}
- putname(tname);
+ afs_putname(tname);
return code;
}