Linux: d_delete now takes a const argument

The d_delete dentry operation now takes a const argument.  Test for
this and define our function accordingly to avoid warnings.

Change-Id: I621f54d8e8182b29ccfdf82798773800f5870064
Reviewed-on: http://gerrit.openafs.org/5335
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
This commit is contained in:
Marc Dionne 2011-09-03 14:10:50 -04:00 committed by Derrick Brashear
parent 3e3400e422
commit def00ae8ba
3 changed files with 19 additions and 0 deletions

View File

@ -916,6 +916,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
LINUX_IOP_I_PERMISSION_TAKES_FLAGS
LINUX_IOP_I_PERMISSION_TAKES_NAMEIDATA
LINUX_IOP_I_PUT_LINK_TAKES_COOKIE
LINUX_DOP_D_DELETE_TAKES_CONST
LINUX_DOP_D_REVALIDATE_TAKES_NAMEIDATA
LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
LINUX_FOP_F_FSYNC_TAKES_DENTRY

View File

@ -1061,7 +1061,11 @@ afs_dentry_iput(struct dentry *dp, struct inode *ip)
}
static int
#if defined(DOP_D_DELETE_TAKES_CONST)
afs_dentry_delete(const struct dentry *dp)
#else
afs_dentry_delete(struct dentry *dp)
#endif
{
if (dp->d_inode && (VTOAFS(dp->d_inode)->f.states & CUnlinked))
return 1; /* bad inode? */

View File

@ -610,3 +610,17 @@ AC_DEFUN([LINUX_D_COUNT_IS_INT], [
[define if dentry->d_count is an int],
[-Werror])
])
AC_DEFUN([LINUX_DOP_D_DELETE_TAKES_CONST], [
AC_CHECK_LINUX_BUILD([whether dentry.d_op->d_delete takes a const argument],
[ac_cv_linux_dop_d_delete_takes_const],
[#include <linux/fs.h>
#include <linux/dcache.h>],
[struct dentry_operations _d_ops;
int _d_del(const struct dentry *de) {return 0;};
_d_ops.d_delete = _d_del;],
[DOP_D_DELETE_TAKES_CONST],
[define if dentry.d_op->d_delete takes a const argument],
[-Werror])
])