mirror of
https://git.openafs.org/openafs.git
synced 2025-01-19 07:20:11 +00:00
Linux 3.19: struct nameidata becomes opaque
With kernel 3.19 struct nameidata becomes opaque. As a result we cannot rely on STRUCT_NAMEIDATA_HAS_PATH being true for new kernels. Rework the conditions here so that STRUCT_NAMEIDATA_HAS_PATH is only tested when we're using a nameidata structure and the result matters. Also modify a configure test to use a nameidata pointer instead of an actual structure. Change-Id: I0d71fca44a67570ac3b86151c70f2969dc463f4f Reviewed-on: http://gerrit.openafs.org/11648 Reviewed-by: Daria Brashear <shadow@your-file-system.com> Tested-by: BuildBot <buildbot@rampaginggeek.com>
This commit is contained in:
parent
ec9a7c2db8
commit
72e22eb00f
@ -493,23 +493,23 @@ afs_get_dentry_ref(struct nameidata *nd, struct vfsmount **mnt, struct dentry **
|
||||
#else
|
||||
afs_get_dentry_ref(afs_linux_path_t *path, struct vfsmount **mnt, struct dentry **dpp) {
|
||||
#endif
|
||||
#if defined(STRUCT_NAMEIDATA_HAS_PATH)
|
||||
# if defined(HAVE_LINUX_PATH_LOOKUP)
|
||||
#if defined(HAVE_LINUX_PATH_LOOKUP)
|
||||
# if defined(STRUCT_NAMEIDATA_HAS_PATH)
|
||||
*dpp = dget(nd->path.dentry);
|
||||
if (mnt)
|
||||
*mnt = mntget(nd->path.mnt);
|
||||
path_put(&nd->path);
|
||||
# else
|
||||
*dpp = dget(path->dentry);
|
||||
if (mnt)
|
||||
*mnt = mntget(path->mnt);
|
||||
path_put(path);
|
||||
# endif
|
||||
#else
|
||||
*dpp = dget(nd->dentry);
|
||||
if (mnt)
|
||||
*mnt = mntget(nd->mnt);
|
||||
path_release(nd);
|
||||
# endif
|
||||
#else
|
||||
*dpp = dget(path->dentry);
|
||||
if (mnt)
|
||||
*mnt = mntget(path->mnt);
|
||||
path_put(path);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -278,9 +278,9 @@ AC_DEFUN([LINUX_IOP_I_PUT_LINK_TAKES_COOKIE], [
|
||||
#include <linux/namei.h>],
|
||||
[struct inode _inode;
|
||||
struct dentry _dentry;
|
||||
struct nameidata _nameidata;
|
||||
struct nameidata *_nameidata;
|
||||
void *cookie;
|
||||
(void)_inode.i_op->put_link(&_dentry, &_nameidata, cookie);],
|
||||
(void)_inode.i_op->put_link(&_dentry, _nameidata, cookie);],
|
||||
[IOP_PUT_LINK_TAKES_COOKIE],
|
||||
[define if your iops.put_link takes a cookie],
|
||||
[])
|
||||
|
Loading…
Reference in New Issue
Block a user