Whamcloud - gitweb
LU-14881 libcfs: Complete testing for tcp_sock_set_* 74/44374/3
authorShaun Tancheff <shaun.tancheff@hpe.com>
Thu, 22 Jul 2021 08:58:44 +0000 (03:58 -0500)
committerOleg Drokin <green@whamcloud.com>
Tue, 10 Aug 2021 08:08:11 +0000 (08:08 +0000)
Linux commits:
  v5.7-rc6-2504-gddd061b8daed
  tcp: add tcp_sock_set_quickack

  v5.7-rc6-2508-gd41ecaac903c
  tcp: add tcp_sock_set_keepintvl

  v5.7-rc6-2509-g480aeb9639d6
  tcp: add tcp_sock_set_keepcnt

Introduced a series of helper functions that may be
back ported individually.

Test-Parameters: trivial
Fixes: 99d9638d6c ("LU-13783 libcfs: support removal of kernel_setsockopt()")
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: I4fce67b801979ec7857265b6bd0370c05737e268
Reviewed-on: https://review.whamcloud.com/44374
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Aurelien Degremont <degremoa@amazon.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
libcfs/autoconf/lustre-libcfs.m4
libcfs/include/libcfs/linux/linux-net.h

index 6b0755d..d58062e 100644 (file)
@@ -1248,6 +1248,66 @@ EXTRA_KCFLAGS="$tmp_flags"
 ]) # LIBCFS_TCP_SOCK_SET_KEEPIDLE
 
 #
+# LIBCFS_TCP_SOCK_SET_QUICKACK
+# kernel v5.7-rc6-2504-gddd061b8daed
+#   tcp: add tcp_sock_set_quickack
+#
+AC_DEFUN([LIBCFS_TCP_SOCK_SET_QUICKACK], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([if 'tcp_sock_set_quickack()' exists],
+tcp_sock_set_quickack_exists, [
+       #include <linux/tcp.h>
+],[
+       tcp_sock_set_quickack(NULL, 0);
+],[
+       AC_DEFINE(HAVE_TCP_SOCK_SET_QUICKACK, 1,
+               ['tcp_sock_set_quickack()' exists])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LIBCFS_TCP_SOCK_SET_QUICKACK
+
+#
+# LIBCFS_TCP_SOCK_SET_KEEPINTVL
+# v5.7-rc6-2508-gd41ecaac903c
+# tcp: add tcp_sock_set_keepintvl
+#
+AC_DEFUN([LIBCFS_TCP_SOCK_SET_KEEPINTVL], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([if 'tcp_sock_set_keepintvl()' exists],
+tcp_sock_set_keepintvl_exists, [
+       #include <linux/tcp.h>
+],[
+       tcp_sock_set_keepintvl(NULL, 0);
+],[
+       AC_DEFINE(HAVE_TCP_SOCK_SET_KEEPINTVL, 1,
+               ['tcp_sock_set_keepintvl()' exists])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LIBCFS_TCP_SOCK_SET_KEEPINTVL
+
+#
+# LIBCFS_TCP_SOCK_SET_KEEPCNT
+# v5.7-rc6-2509-g480aeb9639d6
+# tcp: add tcp_sock_set_keepcnt
+#
+AC_DEFUN([LIBCFS_TCP_SOCK_SET_KEEPCNT], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([if 'tcp_sock_set_keepcnt()' exists],
+tcp_sock_set_keepcnt_exists, [
+       #include <linux/tcp.h>
+],[
+       tcp_sock_set_keepcnt(NULL, 0);
+],[
+       AC_DEFINE(HAVE_TCP_SOCK_SET_KEEPCNT, 1,
+               ['tcp_sock_set_keepcnt()' exists])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LIBCFS_TCP_SOCK_SET_KEEPCNT
+
+#
 # LIBCFS_XARRAY_SUPPORT
 #
 # 4.19-rc5 kernel commit 3159f943aafdbacb2f94c38fdaadabf2bbde2a14
@@ -1693,6 +1753,9 @@ LIBCFS_CACHE_DETAIL_WRITERS
 LIBCFS_HAVE_NR_UNSTABLE_NFS
 # 5.7
 LIBCFS_KALLSYMS_LOOKUP
+LIBCFS_TCP_SOCK_SET_QUICKACK
+LIBCFS_TCP_SOCK_SET_KEEPINTVL
+LIBCFS_TCP_SOCK_SET_KEEPCNT
 # 5.8
 LIBCFS_HAVE_MMAP_LOCK
 LIBCFS_KERNEL_SETSOCKOPT
index cd6be13..08d9cf9 100644 (file)
@@ -80,6 +80,7 @@ static inline int cfs_nla_parse_nested(struct nlattr *tb[], int maxtype,
 
 #include <net/tcp.h>
 
+#if !defined(HAVE_TCP_SOCK_SET_QUICKACK)
 static inline void tcp_sock_set_quickack(struct sock *sk, int opt)
 {
        struct socket *sock = sk->sk_socket;
@@ -87,6 +88,7 @@ static inline void tcp_sock_set_quickack(struct sock *sk, int opt)
        kernel_setsockopt(sock, SOL_TCP, TCP_QUICKACK,
                          (char *)&opt, sizeof(opt));
 }
+#endif /* HAVE_TCP_SOCK_SET_QUICKACK */
 
 #if !defined(HAVE_TCP_SOCK_SET_NODELAY)
 static inline void tcp_sock_set_nodelay(struct sock *sk)
@@ -109,6 +111,7 @@ static inline int tcp_sock_set_keepidle(struct sock *sk, int opt)
 }
 #endif /* HAVE_TCP_SOCK_SET_KEEPIDLE */
 
+#if !defined(HAVE_TCP_SOCK_SET_KEEPINTVL)
 static inline int tcp_sock_set_keepintvl(struct sock *sk, int opt)
 {
        struct socket *sock = sk->sk_socket;
@@ -116,7 +119,9 @@ static inline int tcp_sock_set_keepintvl(struct sock *sk, int opt)
        return kernel_setsockopt(sock, SOL_TCP, TCP_KEEPINTVL,
                                 (char *)&opt, sizeof(opt));
 }
+#endif /* HAVE_TCP_SOCK_SET_KEEPINTVL */
 
+#if !defined(HAVE_TCP_SOCK_SET_KEEPCNT)
 static inline int tcp_sock_set_keepcnt(struct sock *sk, int opt)
 {
        struct socket *sock = sk->sk_socket;
@@ -124,6 +129,7 @@ static inline int tcp_sock_set_keepcnt(struct sock *sk, int opt)
        return kernel_setsockopt(sock, SOL_TCP, TCP_KEEPCNT,
                                 (char *)&opt, sizeof(opt));
 }
+#endif /* HAVE_TCP_SOCK_SET_KEEPCNT */
 #endif /* HAVE_KERNEL_SETSOCKOPT */
 
 #endif /* __LIBCFS_LINUX_NET_H__ */