From 06e7f5bde3a11d5786ef067157ba3e72a444d8ee Mon Sep 17 00:00:00 2001 From: Liu Xuezhao Date: Tue, 26 Jun 2012 10:53:06 +0800 Subject: [PATCH] LU-1337 kernel: NETIF_F_NO_CSUM and LOOKUP_CONTINUE removed 1. kernel: 3.3 removes NETIF_F_NO_CSUM feature bit (kernel commit 34324dc2bf27c1773045fea63cb11f7e2a6ad2b9) The only one place uses NETIF_F_NO_CSUM is to check "(caps & (NETIF_F_IP_CSUM | NETIF_F_NO_CSUM | NETIF_F_HW_CSUM))". Replace (NETIF_F_IP_CSUM | NETIF_F_NO_CSUM | NETIF_F_HW_CSUM) as NETIF_F_ALL_CSUM which was added since kernel 2.6.17 (kernel commit 8648b3053bff39a7ee4c711d74268079c928a657) 2. Kernel 3.1 kills LOOKUP_CONTINUE, LOOKUP_PARENT is equivalent to it since that. See kernel commit 49084c3bb2055c401f3493c13edae14d49128ca0 Another minor change is adding "#include " to libcfs/linux/linux-crypto-adler.c, linux-crypto-crc32.c. Signed-off-by: Liu Xuezhao Change-Id: I4f3621fcb921c866b33881027a4a0a491d676640 Reviewed-on: http://review.whamcloud.com/3398 Tested-by: Hudson Reviewed-by: Andreas Dilger Reviewed-by: Yang Sheng Tested-by: Maloo Reviewed-by: James Simmons --- libcfs/libcfs/linux/linux-crypto-adler.c | 1 + libcfs/libcfs/linux/linux-crypto-crc32.c | 1 + lnet/klnds/socklnd/socklnd_lib-linux.c | 13 ++++++------- lustre/llite/llite_internal.h | 6 ++++++ 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/libcfs/libcfs/linux/linux-crypto-adler.c b/libcfs/libcfs/linux/linux-crypto-adler.c index 9eeda9c..5b74389 100644 --- a/libcfs/libcfs/linux/linux-crypto-adler.c +++ b/libcfs/libcfs/linux/linux-crypto-adler.c @@ -29,6 +29,7 @@ * This is crypto api shash wrappers to zlib_adler32. */ +#include #include #ifdef HAVE_STRUCT_SHASH_ALG #include diff --git a/libcfs/libcfs/linux/linux-crypto-crc32.c b/libcfs/libcfs/linux/linux-crypto-crc32.c index 0c8fc25..bc40867 100644 --- a/libcfs/libcfs/linux/linux-crypto-crc32.c +++ b/libcfs/libcfs/linux/linux-crypto-crc32.c @@ -29,6 +29,7 @@ * This is crypto api shash wrappers to crc32_le. */ +#include #include #ifdef HAVE_STRUCT_SHASH_ALG #include diff --git a/lnet/klnds/socklnd/socklnd_lib-linux.c b/lnet/klnds/socklnd/socklnd_lib-linux.c index a375342..445ea61 100644 --- a/lnet/klnds/socklnd/socklnd_lib-linux.c +++ b/lnet/klnds/socklnd/socklnd_lib-linux.c @@ -432,15 +432,14 @@ ksocknal_lib_get_conn_addrs (ksock_conn_t *conn) int ksocknal_lib_zc_capable(ksock_conn_t *conn) { - int caps = conn->ksnc_sock->sk->sk_route_caps; + int caps = conn->ksnc_sock->sk->sk_route_caps; - if (conn->ksnc_proto == &ksocknal_protocol_v1x) - return 0; + if (conn->ksnc_proto == &ksocknal_protocol_v1x) + return 0; - /* ZC if the socket supports scatter/gather and doesn't need software - * checksums */ - return ((caps & NETIF_F_SG) != 0 && - (caps & (NETIF_F_IP_CSUM | NETIF_F_NO_CSUM | NETIF_F_HW_CSUM)) != 0); + /* ZC if the socket supports scatter/gather and doesn't need software + * checksums */ + return ((caps & NETIF_F_SG) != 0 && (caps & NETIF_F_ALL_CSUM) != 0); } int diff --git a/lustre/llite/llite_internal.h b/lustre/llite/llite_internal.h index 02f80bf..e40a434 100644 --- a/lustre/llite/llite_internal.h +++ b/lustre/llite/llite_internal.h @@ -58,6 +58,12 @@ #define VM_FAULT_RETRY 0 #endif +/* Kernel 3.1 kills LOOKUP_CONTINUE, LOOKUP_PARENT is equivalent to it. + * seem kernel commit 49084c3bb2055c401f3493c13edae14d49128ca0 */ +#ifndef LOOKUP_CONTINUE +#define LOOKUP_CONTINUE LOOKUP_PARENT +#endif + /** Only used on client-side for indicating the tail of dir hash/offset. */ #define LL_DIR_END_OFF 0x7fffffffffffffffULL #define LL_DIR_END_OFF_32BIT 0x7fffffffUL -- 1.8.3.1