From: Marc Dionne Date: Mon, 5 Jan 2015 12:13:37 +0000 (-0500) Subject: Linux 3.19: Use mgs_iter in struct msghdr X-Git-Tag: upstream/1.8.0_pre1^2~400 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=ec9a7c2db833efacfd0692c658c2d38ed9f852ba;p=packages%2Fo%2Fopenafs.git Linux 3.19: Use mgs_iter in struct msghdr struct msghdr gets msg_iov replaced by msg_iter. Add a configure test and adjust the affected code. Change-Id: I9b9e3987e55a10e48087b318d98a5a7bb17a4612 Reviewed-on: http://gerrit.openafs.org/11647 Reviewed-by: Daria Brashear Tested-by: BuildBot --- diff --git a/acinclude.m4 b/acinclude.m4 index 4b09e7561..3d7aaab29 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -918,6 +918,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) AC_CHECK_LINUX_STRUCT([key_type], [instantiate_prep], [key-type.h]) AC_CHECK_LINUX_STRUCT([key_type], [match_preparse], [key-type.h]) AC_CHECK_LINUX_STRUCT([key_type], [preparse], [key-type.h]) + AC_CHECK_LINUX_STRUCT([msghdr], [msg_iter], [socket.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]) diff --git a/src/rx/LINUX/rx_knet.c b/src/rx/LINUX/rx_knet.c index a58947be5..ec1cd6026 100644 --- a/src/rx/LINUX/rx_knet.c +++ b/src/rx/LINUX/rx_knet.c @@ -225,8 +225,13 @@ osi_NetReceive(osi_socket so, struct sockaddr_in *from, struct iovec *iov, memcpy(tmpvec, iov, iovcnt * sizeof(struct iovec)); msg.msg_name = from; +#if defined(STRUCT_MSGHDR_HAS_MSG_ITER) + msg.msg_iter.iov = tmpvec; + msg.msg_iter.nr_segs = iovcnt; +#else msg.msg_iov = tmpvec; msg.msg_iovlen = iovcnt; +#endif msg.msg_control = NULL; msg.msg_controllen = 0; msg.msg_flags = 0;