Linux 3.7: key instantiate API change

Adapt to the new parameters for the instantiate key operation.

Change-Id: I25dea3489b68cad662e962a4973ee98ec7228cd3
Reviewed-on: http://gerrit.openafs.org/8470
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Hans-Werner Paulsen <hans@MPA-Garching.MPG.DE>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
This commit is contained in:
Marc Dionne 2012-11-15 20:58:03 -05:00 committed by Derrick Brashear
parent 007ec3e25e
commit aeb2763b74
2 changed files with 14 additions and 1 deletions

View File

@ -825,6 +825,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
AC_CHECK_LINUX_STRUCT([file_operations], [sendfile], [fs.h])
AC_CHECK_LINUX_STRUCT([file_system_type], [mount], [fs.h])
AC_CHECK_LINUX_STRUCT([filename], [name], [fs.h])
AC_CHECK_LINUX_STRUCT([key_type], [preparse], [key-type.h])
AC_CHECK_LINUX_STRUCT([nameidata], [path], [namei.h])
AC_CHECK_LINUX_STRUCT([proc_dir_entry], [owner], [proc_fs.h])
AC_CHECK_LINUX_STRUCT([super_block], [s_bdi], [fs.h])

View File

@ -457,7 +457,11 @@ static void afs_pag_describe(const struct key *key, struct seq_file *m)
seq_printf(m, ": %u", key->datalen);
}
#if defined(STRUCT_KEY_TYPE_HAS_PREPARSE)
static int afs_pag_instantiate(struct key *key, struct key_preparsed_payload *prep)
#else
static int afs_pag_instantiate(struct key *key, const void *data, size_t datalen)
#endif
{
int code;
afs_uint32 *userpag, pag = NOPAG;
@ -468,7 +472,11 @@ static int afs_pag_instantiate(struct key *key, const void *data, size_t datalen
code = -EINVAL;
get_group_info(current_group_info());
#if defined(STRUCT_KEY_TYPE_HAS_PREPARSE)
if (prep->datalen != sizeof(afs_uint32) || !prep->data)
#else
if (datalen != sizeof(afs_uint32) || !data)
#endif
goto error;
/* ensure key being set matches current pag */
@ -477,7 +485,11 @@ static int afs_pag_instantiate(struct key *key, const void *data, size_t datalen
if (pag == NOPAG)
goto error;
userpag = (afs_uint32 *) data;
#if defined(STRUCT_KEY_TYPE_HAS_PREPARSE)
userpag = (afs_uint32 *)prep->data;
#else
userpag = (afs_uint32 *)data;
#endif
if (*userpag != pag)
goto error;