From 78e8cce68d11e895140b0b03894ffdd62699ffbc Mon Sep 17 00:00:00 2001 From: Marc Dionne Date: Mon, 5 Jan 2015 07:13:37 -0500 Subject: [PATCH] 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. Reviewed-on: http://gerrit.openafs.org/11647 Reviewed-by: Daria Brashear Tested-by: BuildBot (cherry picked from commit ec9a7c2db833efacfd0692c658c2d38ed9f852ba) Change-Id: I9d873626d8997922aacf67a5a9ce7621ed904faa Reviewed-on: http://gerrit.openafs.org/11661 Reviewed-by: Chas Williams - CONTRACTOR Tested-by: BuildBot Reviewed-by: Daria Brashear Reviewed-by: Stephan Wiesand --- acinclude.m4 | 1 + src/rx/LINUX/rx_knet.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/acinclude.m4 b/acinclude.m4 index 94f21530e..f22572f74 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -853,6 +853,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 cb7034eea..3f7f2bc1e 100644 --- a/src/rx/LINUX/rx_knet.c +++ b/src/rx/LINUX/rx_knet.c @@ -229,8 +229,13 @@ osi_NetReceive(osi_socket so, struct sockaddr_in *from, struct iovec *iov, #endif 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; -- 2.39.5