From: Marc Dionne Date: Sat, 3 Sep 2011 18:10:50 +0000 (-0400) Subject: Linux: d_delete now takes a const argument X-Git-Tag: debian/1.6.0-2~5 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=ac462348b20fbf7ce065f7fde6004110714fa380;p=packages%2Fo%2Fopenafs.git 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. Reviewed-on: http://gerrit.openafs.org/5335 Reviewed-by: Simon Wilkinson Reviewed-by: Derrick Brashear Tested-by: BuildBot (cherry picked from commit def00ae8ba774f4d7290c29208484dda756dc0e0) Change-Id: I128a721587f4963849652cb389472a550d81d267 Reviewed-on: http://gerrit.openafs.org/6097 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 7f55b45ed708204c09b144fd8d1e3b71d08fcb66) --- diff --git a/acinclude.m4 b/acinclude.m4 index db9b0e9fb..d9ae5e869 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -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 diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index 1c33d2797..78e206158 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -961,7 +961,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? */ diff --git a/src/cf/linux-test4.m4 b/src/cf/linux-test4.m4 index 2292f811f..3d3aa8f4b 100644 --- a/src/cf/linux-test4.m4 +++ b/src/cf/linux-test4.m4 @@ -604,3 +604,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 + #include ], + [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]) +])