LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
LINUX_HAVE_DCACHE_LOCK
LINUX_D_COUNT_IS_INT
+ LINUX_IOP_MKDIR_TAKES_UMODE_T
+ LINUX_IOP_CREATE_TAKES_UMODE_T
dnl If we are guaranteed that keyrings will work - that is
dnl a) The kernel has keyrings enabled
* name is in kernel space at this point.
*/
static int
+#if defined(IOP_MKDIR_TAKES_UMODE_T)
+afs_linux_create(struct inode *dip, struct dentry *dp, umode_t mode,
+ struct nameidata *nd)
+#else
#ifdef IOP_CREATE_TAKES_NAMEIDATA
afs_linux_create(struct inode *dip, struct dentry *dp, int mode,
struct nameidata *nd)
#else
afs_linux_create(struct inode *dip, struct dentry *dp, int mode)
#endif
+#endif
{
struct vattr vattr;
cred_t *credp = crref();
}
static int
+#if defined(IOP_MKDIR_TAKES_UMODE_T)
+afs_linux_mkdir(struct inode *dip, struct dentry *dp, umode_t mode)
+#else
afs_linux_mkdir(struct inode *dip, struct dentry *dp, int mode)
+#endif
{
int code;
cred_t *credp = crref();
[define if dentry.d_op->d_delete takes a const argument],
[-Werror])
])
+
+
+AC_DEFUN([LINUX_IOP_MKDIR_TAKES_UMODE_T], [
+ AC_CHECK_LINUX_BUILD([whether inode.i_op->mkdir takes a umode_t argument],
+ [ac_cv_linux_iop_mkdir_takes_umode_t],
+ [#include <linux/fs.h>],
+ [struct inode_operations _i_ops;
+ int _mkdir(struct inode *i, struct dentry *d, umode_t m) {return 0;};
+ _i_ops.mkdir = _mkdir;],
+ [IOP_MKDIR_TAKES_UMODE_T],
+ [define if inode.i_op->mkdir takes a umode_t argument],
+ [-Werror])
+])
+
+
+AC_DEFUN([LINUX_IOP_CREATE_TAKES_UMODE_T], [
+ AC_CHECK_LINUX_BUILD([whether inode.i_op->create takes a umode_t argument],
+ [ac_cv_linux_iop_create_takes_umode_t],
+ [#include <linux/fs.h>],
+ [struct inode_operations _i_ops;
+ int _create(struct inode *i, struct dentry *d, umode_t m, struct nameidata *n)
+ {return 0;};
+ _i_ops.create = _create;],
+ [IOP_CREATE_TAKES_UMODE_T],
+ [define if inode.i_op->create takes a umode_t argument],
+ [-Werror])
+])