From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 9BB7813829C for ; Mon, 13 Jun 2016 10:38:47 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 0AEE7E09B3; Mon, 13 Jun 2016 10:38:46 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 2516FE09B3 for ; Mon, 13 Jun 2016 10:38:45 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 9B2F03404A5 for ; Mon, 13 Jun 2016 10:38:43 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 2742297B for ; Mon, 13 Jun 2016 10:38:38 +0000 (UTC) From: "Alexey Shvetsov" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Alexey Shvetsov" Message-ID: <1465814306.91cef20bb91beb8672770f6337f5f37b94045b39.alexxy@gentoo> Subject: [gentoo-commits] proj/sci:master commit in: sys-cluster/lustre/files/, sys-cluster/lustre/ X-VCS-Repository: proj/sci X-VCS-Files: sys-cluster/lustre/files/0001-LU-6215-lprocfs-handle-seq_printf-api-change.patch sys-cluster/lustre/files/0001-LU-8056-libcfs-Support-for-linux-4.2-kernels.patch sys-cluster/lustre/files/0002-LU-6215-gss-cache_head-is-now-on-a-hlist-in-4.3-kern.patch sys-cluster/lustre/files/0002-LU-8056-o2iblnd-ib_query_device-removed-in-4.5.patch sys-cluster/lustre/files/0003-LU-6215-llite-handle-locks-API-change-in-4.4-kernels.patch sys-cluster/lustre/files/0003-LU-8056-socklnd-NETIF_F_ALL_CSUM-renamed-to-NETIF_F_.patch sys-cluster/lustre/files/0004-LU-6215-llite-make_request_fn-returns-blk_qc_t-in-ke.patch sys-cluster/lustre/files/0004-LU-8056-llite-use-inode_lock-to-access-i_mutex.patch sys-cluster/lustre/files/0005-LU-6215-gss-key-payload.data-is-an-array-in-4.4-kern.patch sys-cluster/lustre/files/0005-LU-8056-llite-inode_operations-interface-changed-in-.patch sys-cluster/lustre/files/0006-LU-6215-o2iblnd-rdma_create_id-takes-extra-parameter.patch sys-cluster/lustre/files/0006-LU-8 056-llite-POSIX_ACL_XATTR_-ACCESS-DEFAULT-remove.patch sys-cluster/lustre/files/0007-LU-6215-lnet-split-struct-ib_send_wr.patch sys-cluster/lustre/files/0007-LU-8056-lloop-fix-bio_for_each_segment_all-for-newer.patch sys-cluster/lustre/files/0008-LU-6215-o2iblnd-ib_alloc_fast_reg_mr-removed-in-4.3.patch sys-cluster/lustre/files/0009-LU-6215-o2iblnd-port-to-new-fast-reg-API-introduced-.patch sys-cluster/lustre/files/0010-LU-6215-o2iblnd-rdma_create_id-takes-extra-parameter.patch sys-cluster/lustre/files/0011-LU-6215-llite-remove-obsolete-conditional-code.patch sys-cluster/lustre/files/0012-LU-6215-lnet-split-struct-ib_send_wr.patch sys-cluster/lustre/files/0013-LU-8056-libcfs-Support-for-linux-4.2-kernels.patch sys-cluster/lustre/files/0014-LU-8056-o2iblnd-ib_query_device-removed-in-4.5.patch sys-cluster/lustre/files/0015-LU-8056-socklnd-NETIF_F_ALL_CSUM-renamed-to-NETIF_F_.patch sys-cluster/lustre/files/0016-LU-8056-llite-use-inode_lock-to-access-i_mutex.patch sys-cluster/lustre/fil es/0017-LU-8056-llite-inode_operations-interface-changed-in-.patch sys-cluster/lustre/files/0018-LU-8056-llite-POSIX_ACL_XATTR_-ACCESS-DEFAULT-remove.patch sys-cluster/lustre/files/0019-LU-8056-lloop-fix-bio_for_each_segment_all-for-newer.patch sys-cluster/lustre/lustre-2.8.0.ebuild sys-cluster/lustre/lustre-2.8.54.ebuild sys-cluster/lustre/lustre-9999.ebuild X-VCS-Directories: sys-cluster/lustre/ sys-cluster/lustre/files/ X-VCS-Committer: alexxy X-VCS-Committer-Name: Alexey Shvetsov X-VCS-Revision: 91cef20bb91beb8672770f6337f5f37b94045b39 X-VCS-Branch: master Date: Mon, 13 Jun 2016 10:38:38 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: b5d97308-f553-4284-b1da-76101b1c081e X-Archives-Hash: 0bfe73eaa491ec8e3d9fafb6ed5cf186 commit: 91cef20bb91beb8672770f6337f5f37b94045b39 Author: Alexey Shvetsov gentoo org> AuthorDate: Mon Jun 13 10:38:26 2016 +0000 Commit: Alexey Shvetsov gentoo org> CommitDate: Mon Jun 13 10:38:26 2016 +0000 URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=91cef20b sys-cluster/lustre: Move to 2.8.54 Package-Manager: portage-2.3.0_rc1 ...6215-lprocfs-handle-seq_printf-api-change.patch | 4126 -------------------- ...056-libcfs-Support-for-linux-4.2-kernels.patch} | 10 +- ...-cache_head-is-now-on-a-hlist-in-4.3-kern.patch | 192 - ...6-o2iblnd-ib_query_device-removed-in-4.5.patch} | 107 +- ...te-handle-locks-API-change-in-4.4-kernels.patch | 90 - ...lnd-NETIF_F_ALL_CSUM-renamed-to-NETIF_F_.patch} | 10 +- ...te-make_request_fn-returns-blk_qc_t-in-ke.patch | 95 - ...6-llite-use-inode_lock-to-access-i_mutex.patch} | 81 +- ...-key-payload.data-is-an-array-in-4.4-kern.patch | 229 -- ...e-inode_operations-interface-changed-in-.patch} | 15 +- ...blnd-rdma_create_id-takes-extra-parameter.patch | 106 - ...e-POSIX_ACL_XATTR_-ACCESS-DEFAULT-remove.patch} | 4 +- ...0007-LU-6215-lnet-split-struct-ib_send_wr.patch | 451 --- ...p-fix-bio_for_each_segment_all-for-newer.patch} | 18 +- ...iblnd-ib_alloc_fast_reg_mr-removed-in-4.3.patch | 199 - ...blnd-port-to-new-fast-reg-API-introduced-.patch | 332 -- ...blnd-rdma_create_id-takes-extra-parameter.patch | 46 - ...15-llite-remove-obsolete-conditional-code.patch | 97 - ...0012-LU-6215-lnet-split-struct-ib_send_wr.patch | 169 - .../{lustre-2.8.0.ebuild => lustre-2.8.54.ebuild} | 30 +- sys-cluster/lustre/lustre-9999.ebuild | 23 +- 21 files changed, 113 insertions(+), 6317 deletions(-) diff --git a/sys-cluster/lustre/files/0001-LU-6215-lprocfs-handle-seq_printf-api-change.patch b/sys-cluster/lustre/files/0001-LU-6215-lprocfs-handle-seq_printf-api-change.patch deleted file mode 100644 index 744b9d2..0000000 --- a/sys-cluster/lustre/files/0001-LU-6215-lprocfs-handle-seq_printf-api-change.patch +++ /dev/null @@ -1,4126 +0,0 @@ -From cd60eb450f58589c39568507215e6366b41aa154 Mon Sep 17 00:00:00 2001 -From: James Simmons -Date: Wed, 23 Mar 2016 18:37:27 -0400 -Subject: [PATCH 01/19] LU-6215 lprocfs: handle seq_printf api change - -Starting with the 4.3 linux kernel seq_printf is a void -function not returning the character count. This work -updates lustre to treat seq_printf as a void function. -Fixed alignment issues and ran this patch against the -Linux kernels checkpatch to make it compliant to -upstream standards. - -Change-Id: I0cfd71252322038c1b54da624fce48b37a6f30b6 -Signed-off-by: James Simmons -Reviewed-on: http://review.whamcloud.com/16933 -Tested-by: Jenkins -Reviewed-by: Dmitry Eremin -Tested-by: Maloo -Reviewed-by: Bob Glossman -Reviewed-by: Oleg Drokin ---- - contrib/scripts/checkpatch.pl | 2 + - libcfs/include/libcfs/libcfs_hash.h | 4 +- - libcfs/libcfs/hash.c | 55 ++++---- - lustre/fid/lproc_fid.c | 47 +++---- - lustre/fld/lproc_fld.c | 2 +- - lustre/ldlm/ldlm_pool.c | 21 ++- - lustre/ldlm/ldlm_resource.c | 8 +- - lustre/lfsck/lfsck_internal.h | 14 +- - lustre/lfsck/lfsck_layout.c | 157 ++++++++++----------- - lustre/lfsck/lfsck_lib.c | 66 ++++----- - lustre/lfsck/lfsck_namespace.c | 234 +++++++++++++++----------------- - lustre/llite/lproc_llite.c | 147 ++++++++++---------- - lustre/lmv/lproc_lmv.c | 17 ++- - lustre/lod/lproc_lod.c | 50 ++++--- - lustre/lov/lproc_lov.c | 30 ++-- - lustre/mdc/lproc_mdc.c | 15 +- - lustre/mdd/mdd_lproc.c | 6 +- - lustre/mdt/mdt_coordinator.c | 15 +- - lustre/mdt/mdt_hsm_cdt_actions.c | 54 ++++---- - lustre/mdt/mdt_lproc.c | 45 +++--- - lustre/mgc/mgc_request.c | 4 +- - lustre/obdclass/genops.c | 4 +- - lustre/obdclass/linux/linux-module.c | 29 ++-- - lustre/obdclass/lprocfs_jobstats.c | 3 +- - lustre/obdclass/lprocfs_status.c | 176 ++++++++++++------------ - lustre/obdclass/lprocfs_status_server.c | 36 ++--- - lustre/obdclass/lu_object.c | 27 ++-- - lustre/ofd/lproc_ofd.c | 65 +++++---- - lustre/osc/lproc_osc.c | 95 +++++++------ - lustre/osd-ldiskfs/osd_lproc.c | 35 +++-- - lustre/osd-ldiskfs/osd_scrub.c | 160 +++++++++------------- - lustre/osd-zfs/osd_lproc.c | 9 +- - lustre/osp/lproc_osp.c | 60 +++++--- - lustre/ptlrpc/gss/lproc_gss.c | 42 +++--- - lustre/ptlrpc/lproc_ptlrpc.c | 47 ++++--- - lustre/ptlrpc/nodemap_lproc.c | 36 +++-- - lustre/ptlrpc/nrs_tbf.c | 6 +- - lustre/ptlrpc/sec_bulk.c | 84 ++++++------ - lustre/quota/qsd_lib.c | 45 +++--- - 39 files changed, 974 insertions(+), 978 deletions(-) - -diff --git a/contrib/scripts/checkpatch.pl b/contrib/scripts/checkpatch.pl -index dc85c7c..372ed4c 100755 ---- a/contrib/scripts/checkpatch.pl -+++ b/contrib/scripts/checkpatch.pl -@@ -472,6 +472,8 @@ my %dep_functions = ( - 'strcat', 'strncat', - 'tempnam', 'mkstemp', - 'f_dentry', 'f_path.dentry', -+ '= seq_printf', 'seq_printf', -+ 'return seq_printf', 'seq_printf', - ); - - my @rawlines = (); -diff --git a/libcfs/include/libcfs/libcfs_hash.h b/libcfs/include/libcfs/libcfs_hash.h -index f076b37..6285c66 100644 ---- a/libcfs/include/libcfs/libcfs_hash.h -+++ b/libcfs/include/libcfs/libcfs_hash.h -@@ -803,8 +803,8 @@ __cfs_hash_set_theta(struct cfs_hash *hs, int min, int max) - - /* Generic debug formatting routines mainly for proc handler */ - struct seq_file; --int cfs_hash_debug_header(struct seq_file *m); --int cfs_hash_debug_str(struct cfs_hash *hs, struct seq_file *m); -+void cfs_hash_debug_header(struct seq_file *m); -+void cfs_hash_debug_str(struct cfs_hash *hs, struct seq_file *m); - - /* - * Generic djb2 hash algorithm for character arrays. -diff --git a/libcfs/libcfs/hash.c b/libcfs/libcfs/hash.c -index 02575fb..7afa6cc 100644 ---- a/libcfs/libcfs/hash.c -+++ b/libcfs/libcfs/hash.c -@@ -2043,13 +2043,10 @@ void cfs_hash_rehash_key(struct cfs_hash *hs, const void *old_key, - } - EXPORT_SYMBOL(cfs_hash_rehash_key); - --int cfs_hash_debug_header(struct seq_file *m) -+void cfs_hash_debug_header(struct seq_file *m) - { -- return seq_printf(m, "%-*s%6s%6s%6s%6s%6s%6s%6s%7s%8s%8s%8s%s\n", -- CFS_HASH_BIGNAME_LEN, -- "name", "cur", "min", "max", "theta", "t-min", "t-max", -- "flags", "rehash", "count", "maxdep", "maxdepb", -- " distribution"); -+ seq_printf(m, "%-*s cur min max theta t-min t-max flags rehash count maxdep maxdepb distribution\n", -+ CFS_HASH_BIGNAME_LEN, "name"); - } - EXPORT_SYMBOL(cfs_hash_debug_header); - -@@ -2077,31 +2074,28 @@ cfs_hash_full_nbkt(struct cfs_hash *hs) - CFS_HASH_RH_NBKT(hs) : CFS_HASH_NBKT(hs); - } - --int cfs_hash_debug_str(struct cfs_hash *hs, struct seq_file *m) -+void cfs_hash_debug_str(struct cfs_hash *hs, struct seq_file *m) - { -- int dist[8] = { 0, }; -- int maxdep = -1; -- int maxdepb = -1; -- int total = 0; -- int c = 0; -- int theta; -- int i; -+ int dist[8] = { 0, }; -+ int maxdep = -1; -+ int maxdepb = -1; -+ int total = 0; -+ int theta; -+ int i; - - cfs_hash_lock(hs, 0); - theta = __cfs_hash_theta(hs); - -- c += seq_printf(m, "%-*s ", CFS_HASH_BIGNAME_LEN, hs->hs_name); -- c += seq_printf(m, "%5d ", 1 << hs->hs_cur_bits); -- c += seq_printf(m, "%5d ", 1 << hs->hs_min_bits); -- c += seq_printf(m, "%5d ", 1 << hs->hs_max_bits); -- c += seq_printf(m, "%d.%03d ", __cfs_hash_theta_int(theta), -- __cfs_hash_theta_frac(theta)); -- c += seq_printf(m, "%d.%03d ", __cfs_hash_theta_int(hs->hs_min_theta), -- __cfs_hash_theta_frac(hs->hs_min_theta)); -- c += seq_printf(m, "%d.%03d ", __cfs_hash_theta_int(hs->hs_max_theta), -- __cfs_hash_theta_frac(hs->hs_max_theta)); -- c += seq_printf(m, " 0x%02x ", hs->hs_flags); -- c += seq_printf(m, "%6d ", hs->hs_rehash_count); -+ seq_printf(m, "%-*s %5d %5d %5d %d.%03d %d.%03d %d.%03d 0x%02x %6d ", -+ CFS_HASH_BIGNAME_LEN, hs->hs_name, -+ 1 << hs->hs_cur_bits, 1 << hs->hs_min_bits, -+ 1 << hs->hs_max_bits, -+ __cfs_hash_theta_int(theta), __cfs_hash_theta_frac(theta), -+ __cfs_hash_theta_int(hs->hs_min_theta), -+ __cfs_hash_theta_frac(hs->hs_min_theta), -+ __cfs_hash_theta_int(hs->hs_max_theta), -+ __cfs_hash_theta_frac(hs->hs_max_theta), -+ hs->hs_flags, hs->hs_rehash_count); - - /* - * The distribution is a summary of the chained hash depth in -@@ -2126,17 +2120,14 @@ int cfs_hash_debug_str(struct cfs_hash *hs, struct seq_file *m) - maxdepb = ffz(~maxdep); - } - total += bd.bd_bucket->hsb_count; -- dist[min(fls(bd.bd_bucket->hsb_count/max(theta,1)),7)]++; -+ dist[min(fls(bd.bd_bucket->hsb_count / max(theta, 1)), 7)]++; - cfs_hash_bd_unlock(hs, &bd, 0); - } - -- c += seq_printf(m, "%7d ", total); -- c += seq_printf(m, "%7d ", maxdep); -- c += seq_printf(m, "%7d ", maxdepb); -+ seq_printf(m, "%7d %7d %7d ", total, maxdep, maxdepb); - for (i = 0; i < 8; i++) -- c += seq_printf(m, "%d%c", dist[i], (i == 7) ? '\n' : '/'); -+ seq_printf(m, "%d%c", dist[i], (i == 7) ? '\n' : '/'); - - cfs_hash_unlock(hs, 0); -- return c; - } - EXPORT_SYMBOL(cfs_hash_debug_str); -diff --git a/lustre/fid/lproc_fid.c b/lustre/fid/lproc_fid.c -index 078df00..00b2c7b 100644 ---- a/lustre/fid/lproc_fid.c -+++ b/lustre/fid/lproc_fid.c -@@ -127,17 +127,15 @@ static int - lprocfs_server_fid_space_seq_show(struct seq_file *m, void *unused) - { - struct lu_server_seq *seq = (struct lu_server_seq *)m->private; -- int rc; - ENTRY; - - LASSERT(seq != NULL); - - mutex_lock(&seq->lss_mutex); -- rc = seq_printf(m, "["LPX64" - "LPX64"]:%x:%s\n", -- PRANGE(&seq->lss_space)); -+ seq_printf(m, "["LPX64" - "LPX64"]:%x:%s\n", PRANGE(&seq->lss_space)); - mutex_unlock(&seq->lss_mutex); - -- RETURN(rc); -+ RETURN(0); - } - - static int -@@ -145,7 +143,6 @@ lprocfs_server_fid_server_seq_show(struct seq_file *m, void *unused) - { - struct lu_server_seq *seq = (struct lu_server_seq *)m->private; - struct client_obd *cli; -- int rc; - ENTRY; - - LASSERT(seq != NULL); -@@ -153,16 +150,15 @@ lprocfs_server_fid_server_seq_show(struct seq_file *m, void *unused) - if (seq->lss_cli) { - if (seq->lss_cli->lcs_exp != NULL) { - cli = &seq->lss_cli->lcs_exp->exp_obd->u.cli; -- rc = seq_printf(m, "%s\n", cli->cl_target_uuid.uuid); -+ seq_printf(m, "%s\n", cli->cl_target_uuid.uuid); - } else { -- rc = seq_printf(m, "%s\n", -- seq->lss_cli->lcs_srv->lss_name); -+ seq_printf(m, "%s\n", seq->lss_cli->lcs_srv->lss_name); - } - } else { -- rc = seq_printf(m, "\n"); -+ seq_puts(m, "\n"); - } - -- RETURN(rc); -+ RETURN(0); - } - - static ssize_t -@@ -197,16 +193,15 @@ static int - lprocfs_server_fid_width_seq_show(struct seq_file *m, void *unused) - { - struct lu_server_seq *seq = (struct lu_server_seq *)m->private; -- int rc; - ENTRY; - - LASSERT(seq != NULL); - - mutex_lock(&seq->lss_mutex); -- rc = seq_printf(m, LPU64"\n", seq->lss_width); -+ seq_printf(m, LPU64"\n", seq->lss_width); - mutex_unlock(&seq->lss_mutex); - -- RETURN(rc); -+ RETURN(0); - } - - LPROC_SEQ_FOPS(lprocfs_server_fid_space); -@@ -334,7 +329,7 @@ static int fldb_seq_show(struct seq_file *p, void *v) - fld->lsf_name, rc); - } else if (fld_rec.lsr_start != 0) { - range_be_to_cpu(&fld_rec, &fld_rec); -- rc = seq_printf(p, DRANGE"\n", PRANGE(&fld_rec)); -+ seq_printf(p, DRANGE"\n", PRANGE(&fld_rec)); - } - - return rc; -@@ -533,17 +528,16 @@ static int - lprocfs_client_fid_space_seq_show(struct seq_file *m, void *unused) - { - struct lu_client_seq *seq = (struct lu_client_seq *)m->private; -- int rc; - ENTRY; - - LASSERT(seq != NULL); - - mutex_lock(&seq->lcs_mutex); -- rc = seq_printf(m, "["LPX64" - "LPX64"]:%x:%s\n", -- PRANGE(&seq->lcs_space)); -+ seq_printf(m, "["LPX64" - "LPX64"]:%x:%s\n", -+ PRANGE(&seq->lcs_space)); - mutex_unlock(&seq->lcs_mutex); - -- RETURN(rc); -+ RETURN(0); - } - - static ssize_t -@@ -585,32 +579,30 @@ static int - lprocfs_client_fid_width_seq_show(struct seq_file *m, void *unused) - { - struct lu_client_seq *seq = (struct lu_client_seq *)m->private; -- int rc; - ENTRY; - - LASSERT(seq != NULL); - - mutex_lock(&seq->lcs_mutex); -- rc = seq_printf(m, LPU64"\n", seq->lcs_width); -+ seq_printf(m, LPU64"\n", seq->lcs_width); - mutex_unlock(&seq->lcs_mutex); - -- RETURN(rc); -+ RETURN(0); - } - - static int - lprocfs_client_fid_fid_seq_show(struct seq_file *m, void *unused) - { - struct lu_client_seq *seq = (struct lu_client_seq *)m->private; -- int rc; - ENTRY; - - LASSERT(seq != NULL); - - mutex_lock(&seq->lcs_mutex); -- rc = seq_printf(m, DFID"\n", PFID(&seq->lcs_fid)); -+ seq_printf(m, DFID"\n", PFID(&seq->lcs_fid)); - mutex_unlock(&seq->lcs_mutex); - -- RETURN(rc); -+ RETURN(0); - } - - static int -@@ -618,18 +610,17 @@ lprocfs_client_fid_server_seq_show(struct seq_file *m, void *unused) - { - struct lu_client_seq *seq = (struct lu_client_seq *)m->private; - struct client_obd *cli; -- int rc; - ENTRY; - - LASSERT(seq != NULL); - - if (seq->lcs_exp != NULL) { - cli = &seq->lcs_exp->exp_obd->u.cli; -- rc = seq_printf(m, "%s\n", cli->cl_target_uuid.uuid); -+ seq_printf(m, "%s\n", cli->cl_target_uuid.uuid); - } else { -- rc = seq_printf(m, "%s\n", seq->lcs_srv->lss_name); -+ seq_printf(m, "%s\n", seq->lcs_srv->lss_name); - } -- RETURN(rc); -+ RETURN(0); - } - - LPROC_SEQ_FOPS(lprocfs_client_fid_space); -diff --git a/lustre/fld/lproc_fld.c b/lustre/fld/lproc_fld.c -index 4ae4f26..24e336c 100644 ---- a/lustre/fld/lproc_fld.c -+++ b/lustre/fld/lproc_fld.c -@@ -263,7 +263,7 @@ static int fldb_seq_show(struct seq_file *p, void *v) - fld->lsf_name, rc); - } else if (fld_rec->lsr_start != 0) { - range_be_to_cpu(fld_rec, fld_rec); -- rc = seq_printf(p, DRANGE"\n", PRANGE(fld_rec)); -+ seq_printf(p, DRANGE"\n", PRANGE(fld_rec)); - } - - return rc; -diff --git a/lustre/ldlm/ldlm_pool.c b/lustre/ldlm/ldlm_pool.c -index 5292266..5ed717c 100644 ---- a/lustre/ldlm/ldlm_pool.c -+++ b/lustre/ldlm/ldlm_pool.c -@@ -685,20 +685,19 @@ static int lprocfs_pool_state_seq_show(struct seq_file *m, void *unused) - spin_unlock(&pl->pl_lock); - - seq_printf(m, "LDLM pool state (%s):\n" -- " SLV: "LPU64"\n" -- " CLV: "LPU64"\n" -- " LVF: %d\n", -- pl->pl_name, slv, clv, lvf); -+ " SLV: "LPU64"\n" -+ " CLV: "LPU64"\n" -+ " LVF: %d\n", -+ pl->pl_name, slv, clv, lvf); - - if (ns_is_server(ldlm_pl2ns(pl))) { -- seq_printf(m, " GSP: %d%%\n" -- " GP: %d\n", -- grant_step, grant_plan); -+ seq_printf(m, " GSP: %d%%\n", grant_step); -+ seq_printf(m, " GP: %d\n", grant_plan); - } -- seq_printf(m, " GR: %d\n" " CR: %d\n" " GS: %d\n" -- " G: %d\n" " L: %d\n", -- grant_rate, cancel_rate, grant_speed, -- granted, limit); -+ -+ seq_printf(m, " GR: %d\n CR: %d\n GS: %d\n G: %d\n L: %d\n", -+ grant_rate, cancel_rate, grant_speed, -+ granted, limit); - return 0; - } - LPROC_SEQ_FOPS_RO(lprocfs_pool_state); -diff --git a/lustre/ldlm/ldlm_resource.c b/lustre/ldlm/ldlm_resource.c -index 7ed21e3..7abcaaa 100644 ---- a/lustre/ldlm/ldlm_resource.c -+++ b/lustre/ldlm/ldlm_resource.c -@@ -88,7 +88,8 @@ LPROC_SEQ_FOPS_RO_TYPE(ldlm, uint); - - static int seq_watermark_show(struct seq_file *m, void *data) - { -- return seq_printf(m, LPU64"\n", *(__u64 *)m->private); -+ seq_printf(m, LPU64"\n", *(__u64 *)m->private); -+ return 0; - } - - static ssize_t seq_watermark_write(struct file *file, -@@ -161,8 +162,9 @@ static const struct file_operations ldlm_watermark_fops = { - - static int seq_granted_show(struct seq_file *m, void *data) - { -- return seq_printf(m, LPU64"\n", percpu_counter_sum_positive( -- (struct percpu_counter *)m->private)); -+ seq_printf(m, LPU64"\n", percpu_counter_sum_positive( -+ (struct percpu_counter *)m->private)); -+ return 0; - } - - static int seq_granted_open(struct inode *inode, struct file *file) -diff --git a/lustre/lfsck/lfsck_internal.h b/lustre/lfsck/lfsck_internal.h -index 281643e..a75e948 100644 ---- a/lustre/lfsck/lfsck_internal.h -+++ b/lustre/lfsck/lfsck_internal.h -@@ -411,9 +411,9 @@ struct lfsck_operations { - int result, - bool init); - -- int (*lfsck_dump)(const struct lu_env *env, -- struct lfsck_component *com, -- struct seq_file *m); -+ void (*lfsck_dump)(const struct lu_env *env, -+ struct lfsck_component *com, -+ struct seq_file *m); - - int (*lfsck_double_scan)(const struct lu_env *env, - struct lfsck_component *com); -@@ -917,11 +917,11 @@ void lfsck_component_cleanup(const struct lu_env *env, - struct lfsck_component *com); - void lfsck_instance_cleanup(const struct lu_env *env, - struct lfsck_instance *lfsck); --int lfsck_bits_dump(struct seq_file *m, int bits, const char *names[], -+void lfsck_bits_dump(struct seq_file *m, int bits, const char *names[], -+ const char *prefix); -+void lfsck_time_dump(struct seq_file *m, __u64 time, const char *name); -+void lfsck_pos_dump(struct seq_file *m, struct lfsck_position *pos, - const char *prefix); --int lfsck_time_dump(struct seq_file *m, __u64 time, const char *name); --int lfsck_pos_dump(struct seq_file *m, struct lfsck_position *pos, -- const char *prefix); - void lfsck_pos_fill(const struct lu_env *env, struct lfsck_instance *lfsck, - struct lfsck_position *pos, bool init); - bool __lfsck_set_speed(struct lfsck_instance *lfsck, __u32 limit); -diff --git a/lustre/lfsck/lfsck_layout.c b/lustre/lfsck/lfsck_layout.c -index 66732d5..e40c311 100644 ---- a/lustre/lfsck/lfsck_layout.c -+++ b/lustre/lfsck/lfsck_layout.c -@@ -4747,73 +4747,59 @@ static int lfsck_layout_slave_post(const struct lu_env *env, - return rc; - } - --static int lfsck_layout_dump(const struct lu_env *env, -- struct lfsck_component *com, struct seq_file *m) -+static void lfsck_layout_dump(const struct lu_env *env, -+ struct lfsck_component *com, struct seq_file *m) - { - struct lfsck_instance *lfsck = com->lc_lfsck; - struct lfsck_bookmark *bk = &lfsck->li_bookmark_ram; - struct lfsck_layout *lo = com->lc_file_ram; -- int rc; - - down_read(&com->lc_sem); - seq_printf(m, "name: lfsck_layout\n" -- "magic: %#x\n" -- "version: %d\n" -- "status: %s\n", -- lo->ll_magic, -- bk->lb_version, -- lfsck_status2names(lo->ll_status)); -- -- rc = lfsck_bits_dump(m, lo->ll_flags, lfsck_flags_names, "flags"); -- if (rc < 0) -- goto out; -+ "magic: %#x\n" -+ "version: %d\n" -+ "status: %s\n", -+ lo->ll_magic, -+ bk->lb_version, -+ lfsck_status2name(lo->ll_status)); - -- rc = lfsck_bits_dump(m, bk->lb_param, lfsck_param_names, "param"); -- if (rc < 0) -- goto out; -+ lfsck_bits_dump(m, lo->ll_flags, lfsck_flags_names, "flags"); - -- rc = lfsck_time_dump(m, lo->ll_time_last_complete, -- "last_completed"); -- if (rc < 0) -- goto out; -+ lfsck_bits_dump(m, bk->lb_param, lfsck_param_names, "param"); - -- rc = lfsck_time_dump(m, lo->ll_time_latest_start, -- "latest_start"); -- if (rc < 0) -- goto out; -+ lfsck_time_dump(m, lo->ll_time_last_complete, "last_completed"); - -- rc = lfsck_time_dump(m, lo->ll_time_last_checkpoint, -- "last_checkpoint"); -- if (rc < 0) -- goto out; -+ lfsck_time_dump(m, lo->ll_time_latest_start, "latest_start"); -+ -+ lfsck_time_dump(m, lo->ll_time_last_checkpoint, "last_checkpoint"); - - seq_printf(m, "latest_start_position: "LPU64"\n" -- "last_checkpoint_position: "LPU64"\n" -- "first_failure_position: "LPU64"\n", -- lo->ll_pos_latest_start, -- lo->ll_pos_last_checkpoint, -- lo->ll_pos_first_inconsistent); -+ "last_checkpoint_position: "LPU64"\n" -+ "first_failure_position: "LPU64"\n", -+ lo->ll_pos_latest_start, -+ lo->ll_pos_last_checkpoint, -+ lo->ll_pos_first_inconsistent); - - seq_printf(m, "success_count: %u\n" -- "repaired_dangling: "LPU64"\n" -- "repaired_unmatched_pair: "LPU64"\n" -- "repaired_multiple_referenced: "LPU64"\n" -- "repaired_orphan: "LPU64"\n" -- "repaired_inconsistent_owner: "LPU64"\n" -- "repaired_others: "LPU64"\n" -- "skipped: "LPU64"\n" -- "failed_phase1: "LPU64"\n" -- "failed_phase2: "LPU64"\n", -- lo->ll_success_count, -- lo->ll_objs_repaired[LLIT_DANGLING - 1], -- lo->ll_objs_repaired[LLIT_UNMATCHED_PAIR - 1], -- lo->ll_objs_repaired[LLIT_MULTIPLE_REFERENCED - 1], -- lo->ll_objs_repaired[LLIT_ORPHAN - 1], -- lo->ll_objs_repaired[LLIT_INCONSISTENT_OWNER - 1], -- lo->ll_objs_repaired[LLIT_OTHERS - 1], -- lo->ll_objs_skipped, -- lo->ll_objs_failed_phase1, -- lo->ll_objs_failed_phase2); -+ "repaired_dangling: "LPU64"\n" -+ "repaired_unmatched_pair: "LPU64"\n" -+ "repaired_multiple_referenced: "LPU64"\n" -+ "repaired_orphan: "LPU64"\n" -+ "repaired_inconsistent_owner: "LPU64"\n" -+ "repaired_others: "LPU64"\n" -+ "skipped: "LPU64"\n" -+ "failed_phase1: "LPU64"\n" -+ "failed_phase2: "LPU64"\n", -+ lo->ll_success_count, -+ lo->ll_objs_repaired[LLIT_DANGLING - 1], -+ lo->ll_objs_repaired[LLIT_UNMATCHED_PAIR - 1], -+ lo->ll_objs_repaired[LLIT_MULTIPLE_REFERENCED - 1], -+ lo->ll_objs_repaired[LLIT_ORPHAN - 1], -+ lo->ll_objs_repaired[LLIT_INCONSISTENT_OWNER - 1], -+ lo->ll_objs_repaired[LLIT_OTHERS - 1], -+ lo->ll_objs_skipped, -+ lo->ll_objs_failed_phase1, -+ lo->ll_objs_failed_phase2); - - if (lo->ll_status == LS_SCANNING_PHASE1) { - __u64 pos; -@@ -4833,19 +4819,19 @@ static int lfsck_layout_dump(const struct lu_env *env, - if (rtime != 0) - do_div(speed, rtime); - seq_printf(m, "checked_phase1: "LPU64"\n" -- "checked_phase2: "LPU64"\n" -- "run_time_phase1: %u seconds\n" -- "run_time_phase2: %u seconds\n" -- "average_speed_phase1: "LPU64" items/sec\n" -- "average_speed_phase2: N/A\n" -- "real-time_speed_phase1: "LPU64" items/sec\n" -- "real-time_speed_phase2: N/A\n", -- checked, -- lo->ll_objs_checked_phase2, -- rtime, -- lo->ll_run_time_phase2, -- speed, -- new_checked); -+ "checked_phase2: "LPU64"\n" -+ "run_time_phase1: %u seconds\n" -+ "run_time_phase2: %u seconds\n" -+ "average_speed_phase1: "LPU64" items/sec\n" -+ "average_speed_phase2: N/A\n" -+ "real-time_speed_phase1: "LPU64" items/sec\n" -+ "real-time_speed_phase2: N/A\n", -+ checked, -+ lo->ll_objs_checked_phase2, -+ rtime, -+ lo->ll_run_time_phase2, -+ speed, -+ new_checked); - - LASSERT(lfsck->li_di_oit != NULL); - -@@ -4878,26 +4864,23 @@ static int lfsck_layout_dump(const struct lu_env *env, - do_div(speed1, lo->ll_run_time_phase1); - if (rtime != 0) - do_div(speed2, rtime); -- rc = seq_printf(m, "checked_phase1: "LPU64"\n" -- "checked_phase2: "LPU64"\n" -- "run_time_phase1: %u seconds\n" -- "run_time_phase2: %u seconds\n" -- "average_speed_phase1: "LPU64" items/sec\n" -- "average_speed_phase2: "LPU64" items/sec\n" -- "real-time_speed_phase1: N/A\n" -- "real-time_speed_phase2: "LPU64" items/sec\n" -- "current_position: "DFID"\n", -- lo->ll_objs_checked_phase1, -- checked, -- lo->ll_run_time_phase1, -- rtime, -- speed1, -- speed2, -- new_checked, -- PFID(&com->lc_fid_latest_scanned_phase2)); -- if (rc <= 0) -- goto out; -- -+ seq_printf(m, "checked_phase1: "LPU64"\n" -+ "checked_phase2: "LPU64"\n" -+ "run_time_phase1: %u seconds\n" -+ "run_time_phase2: %u seconds\n" -+ "average_speed_phase1: "LPU64" items/sec\n" -+ "average_speed_phase2: "LPU64" items/sec\n" -+ "real-time_speed_phase1: N/A\n" -+ "real-time_speed_phase2: "LPU64" items/sec\n" -+ "current_position: "DFID"\n", -+ lo->ll_objs_checked_phase1, -+ checked, -+ lo->ll_run_time_phase1, -+ rtime, -+ speed1, -+ speed2, -+ new_checked, -+ PFID(&com->lc_fid_latest_scanned_phase2)); - } else { - __u64 speed1 = lo->ll_objs_checked_phase1; - __u64 speed2 = lo->ll_objs_checked_phase2; -@@ -4922,10 +4905,8 @@ static int lfsck_layout_dump(const struct lu_env *env, - speed1, - speed2); - } --out: -- up_read(&com->lc_sem); - -- return rc; -+ up_read(&com->lc_sem); - } - - static int lfsck_layout_master_double_scan(const struct lu_env *env, -diff --git a/lustre/lfsck/lfsck_lib.c b/lustre/lfsck/lfsck_lib.c -index 139c95b..1064392 100644 ---- a/lustre/lfsck/lfsck_lib.c -+++ b/lustre/lfsck/lfsck_lib.c -@@ -1749,17 +1749,14 @@ static inline int lfsck_instance_add(struct lfsck_instance *lfsck) - return 0; - } - --int lfsck_bits_dump(struct seq_file *m, int bits, const char *names[], -- const char *prefix) -+void lfsck_bits_dump(struct seq_file *m, int bits, const char *names[], -+ const char *prefix) - { - int flag; - int i; - bool newline = (bits != 0 ? false : true); -- int rc; - -- rc = seq_printf(m, "%s:%c", prefix, bits != 0 ? ' ' : '\n'); -- if (rc < 0) -- return rc; -+ seq_printf(m, "%s:%c", prefix, bits != 0 ? ' ' : '\n'); - - for (i = 0, flag = 1; bits != 0; i++, flag = 1 << i) { - if (flag & bits) { -@@ -1768,54 +1765,43 @@ int lfsck_bits_dump(struct seq_file *m, int bits, const char *names[], - if (bits == 0) - newline = true; - -- rc = seq_printf(m, "%s%c", names[i], -- newline ? '\n' : ','); -- if (rc < 0) -- return rc; -+ seq_printf(m, "%s%c", names[i], -+ newline ? '\n' : ','); - } - } - } - - if (!newline) -- rc = seq_printf(m, "\n"); -- -- return rc; -+ seq_putc(m, '\n'); - } - --int lfsck_time_dump(struct seq_file *m, __u64 time, const char *name) -+void lfsck_time_dump(struct seq_file *m, __u64 time, const char *name) - { -- int rc; -- - if (time == 0) { -- rc = seq_printf(m, "%s_time: N/A\n", name); -- if (rc == 0) -- rc = seq_printf(m, "time_since_%s: N/A\n", name); -- -- return rc; -+ seq_printf(m, "%s_time: N/A\n", name); -+ seq_printf(m, "time_since_%s: N/A\n", name); -+ } else { -+ seq_printf(m, "%s_time: "LPU64"\n", name, time); -+ seq_printf(m, "time_since_%s: "LPU64" seconds\n", -+ name, cfs_time_current_sec() - time); - } -- -- rc = seq_printf(m, "%s_time: "LPU64"\n", name, time); -- if (rc == 0) -- rc = seq_printf(m, "time_since_%s: "LPU64" seconds\n", -- name, cfs_time_current_sec() - time); -- -- return rc; - } - --int lfsck_pos_dump(struct seq_file *m, struct lfsck_position *pos, -- const char *prefix) -+void lfsck_pos_dump(struct seq_file *m, struct lfsck_position *pos, -+ const char *prefix) - { - if (fid_is_zero(&pos->lp_dir_parent)) { -- if (pos->lp_oit_cookie == 0) -- return seq_printf(m, "%s: N/A, N/A, N/A\n", prefix); -- -- return seq_printf(m, "%s: "LPU64", N/A, N/A\n", -- prefix, pos->lp_oit_cookie); -+ if (pos->lp_oit_cookie == 0) { -+ seq_printf(m, "%s: N/A, N/A, N/A\n", prefix); -+ return; -+ } -+ seq_printf(m, "%s: "LPU64", N/A, N/A\n", -+ prefix, pos->lp_oit_cookie); -+ } else { -+ seq_printf(m, "%s: "LPU64", "DFID", "LPX64"\n", -+ prefix, pos->lp_oit_cookie, -+ PFID(&pos->lp_dir_parent), pos->lp_dir_cookie); - } -- -- return seq_printf(m, "%s: "LPU64", "DFID", "LPX64"\n", -- prefix, pos->lp_oit_cookie, -- PFID(&pos->lp_dir_parent), pos->lp_dir_cookie); - } - - void lfsck_pos_fill(const struct lu_env *env, struct lfsck_instance *lfsck, -@@ -2696,7 +2682,7 @@ int lfsck_dump(struct seq_file *m, struct dt_device *key, enum lfsck_type type) - if (likely(lfsck != NULL)) { - com = lfsck_component_find(lfsck, type); - if (likely(com != NULL)) { -- rc = com->lc_ops->lfsck_dump(&env, com, m); -+ com->lc_ops->lfsck_dump(&env, com, m); - lfsck_component_put(&env, com); - } else { - rc = -ENOTSUPP; -diff --git a/lustre/lfsck/lfsck_namespace.c b/lustre/lfsck/lfsck_namespace.c -index fa448bb..a97fa17 100644 ---- a/lustre/lfsck/lfsck_namespace.c -+++ b/lustre/lfsck/lfsck_namespace.c -@@ -3611,75 +3611,75 @@ static void lfsck_namespace_dump_statistics(struct seq_file *m, - __u32 time_phase2) - { - seq_printf(m, "checked_phase1: "LPU64"\n" -- "checked_phase2: "LPU64"\n" -- "updated_phase1: "LPU64"\n" -- "updated_phase2: "LPU64"\n" -- "failed_phase1: "LPU64"\n" -- "failed_phase2: "LPU64"\n" -- "directories: "LPU64"\n" -- "dirent_repaired: "LPU64"\n" -- "linkea_repaired: "LPU64"\n" -- "nlinks_repaired: "LPU64"\n" -- "multiple_linked_checked: "LPU64"\n" -- "multiple_linked_repaired: "LPU64"\n" -- "unknown_inconsistency: "LPU64"\n" -- "unmatched_pairs_repaired: "LPU64"\n" -- "dangling_repaired: "LPU64"\n" -- "multiple_referenced_repaired: "LPU64"\n" -- "bad_file_type_repaired: "LPU64"\n" -- "lost_dirent_repaired: "LPU64"\n" -- "local_lost_found_scanned: "LPU64"\n" -- "local_lost_found_moved: "LPU64"\n" -- "local_lost_found_skipped: "LPU64"\n" -- "local_lost_found_failed: "LPU64"\n" -- "striped_dirs_scanned: "LPU64"\n" -- "striped_dirs_repaired: "LPU64"\n" -- "striped_dirs_failed: "LPU64"\n" -- "striped_dirs_disabled: "LPU64"\n" -- "striped_dirs_skipped: "LPU64"\n" -- "striped_shards_scanned: "LPU64"\n" -- "striped_shards_repaired: "LPU64"\n" -- "striped_shards_failed: "LPU64"\n" -- "striped_shards_skipped: "LPU64"\n" -- "name_hash_repaired: "LPU64"\n" -- "success_count: %u\n" -- "run_time_phase1: %u seconds\n" -- "run_time_phase2: %u seconds\n", -- checked_phase1, -- checked_phase2, -- ns->ln_items_repaired, -- ns->ln_objs_repaired_phase2, -- ns->ln_items_failed, -- ns->ln_objs_failed_phase2, -- ns->ln_dirs_checked, -- ns->ln_dirent_repaired, -- ns->ln_linkea_repaired, -- ns->ln_objs_nlink_repaired, -- ns->ln_mul_linked_checked, -- ns->ln_mul_linked_repaired, -- ns->ln_unknown_inconsistency, -- ns->ln_unmatched_pairs_repaired, -- ns->ln_dangling_repaired, -- ns->ln_mul_ref_repaired, -- ns->ln_bad_type_repaired, -- ns->ln_lost_dirent_repaired, -- ns->ln_local_lpf_scanned, -- ns->ln_local_lpf_moved, -- ns->ln_local_lpf_skipped, -- ns->ln_local_lpf_failed, -- ns->ln_striped_dirs_scanned, -- ns->ln_striped_dirs_repaired, -- ns->ln_striped_dirs_failed, -- ns->ln_striped_dirs_disabled, -- ns->ln_striped_dirs_skipped, -- ns->ln_striped_shards_scanned, -- ns->ln_striped_shards_repaired, -- ns->ln_striped_shards_failed, -- ns->ln_striped_shards_skipped, -- ns->ln_name_hash_repaired, -- ns->ln_success_count, -- time_phase1, -- time_phase2); -+ "checked_phase2: "LPU64"\n" -+ "updated_phase1: "LPU64"\n" -+ "updated_phase2: "LPU64"\n" -+ "failed_phase1: "LPU64"\n" -+ "failed_phase2: "LPU64"\n" -+ "directories: "LPU64"\n" -+ "dirent_repaired: "LPU64"\n" -+ "linkea_repaired: "LPU64"\n" -+ "nlinks_repaired: "LPU64"\n" -+ "multiple_linked_checked: "LPU64"\n" -+ "multiple_linked_repaired: "LPU64"\n" -+ "unknown_inconsistency: "LPU64"\n" -+ "unmatched_pairs_repaired: "LPU64"\n" -+ "dangling_repaired: "LPU64"\n" -+ "multiple_referenced_repaired: "LPU64"\n" -+ "bad_file_type_repaired: "LPU64"\n" -+ "lost_dirent_repaired: "LPU64"\n" -+ "local_lost_found_scanned: "LPU64"\n" -+ "local_lost_found_moved: "LPU64"\n" -+ "local_lost_found_skipped: "LPU64"\n" -+ "local_lost_found_failed: "LPU64"\n" -+ "striped_dirs_scanned: "LPU64"\n" -+ "striped_dirs_repaired: "LPU64"\n" -+ "striped_dirs_failed: "LPU64"\n" -+ "striped_dirs_disabled: "LPU64"\n" -+ "striped_dirs_skipped: "LPU64"\n" -+ "striped_shards_scanned: "LPU64"\n" -+ "striped_shards_repaired: "LPU64"\n" -+ "striped_shards_failed: "LPU64"\n" -+ "striped_shards_skipped: "LPU64"\n" -+ "name_hash_repaired: "LPU64"\n" -+ "success_count: %u\n" -+ "run_time_phase1: %u seconds\n" -+ "run_time_phase2: %u seconds\n", -+ checked_phase1, -+ checked_phase2, -+ ns->ln_items_repaired, -+ ns->ln_objs_repaired_phase2, -+ ns->ln_items_failed, -+ ns->ln_objs_failed_phase2, -+ ns->ln_dirs_checked, -+ ns->ln_dirent_repaired, -+ ns->ln_linkea_repaired, -+ ns->ln_objs_nlink_repaired, -+ ns->ln_mul_linked_checked, -+ ns->ln_mul_linked_repaired, -+ ns->ln_unknown_inconsistency, -+ ns->ln_unmatched_pairs_repaired, -+ ns->ln_dangling_repaired, -+ ns->ln_mul_ref_repaired, -+ ns->ln_bad_type_repaired, -+ ns->ln_lost_dirent_repaired, -+ ns->ln_local_lpf_scanned, -+ ns->ln_local_lpf_moved, -+ ns->ln_local_lpf_skipped, -+ ns->ln_local_lpf_failed, -+ ns->ln_striped_dirs_scanned, -+ ns->ln_striped_dirs_repaired, -+ ns->ln_striped_dirs_failed, -+ ns->ln_striped_dirs_disabled, -+ ns->ln_striped_dirs_skipped, -+ ns->ln_striped_shards_scanned, -+ ns->ln_striped_shards_repaired, -+ ns->ln_striped_shards_failed, -+ ns->ln_striped_shards_skipped, -+ ns->ln_name_hash_repaired, -+ ns->ln_success_count, -+ time_phase1, -+ time_phase2); - } - - static void lfsck_namespace_release_lmv(const struct lu_env *env, -@@ -4243,14 +4243,13 @@ static int lfsck_namespace_post(const struct lu_env *env, - RETURN(rc); - } - --static int -+static void - lfsck_namespace_dump(const struct lu_env *env, struct lfsck_component *com, - struct seq_file *m) - { - struct lfsck_instance *lfsck = com->lc_lfsck; - struct lfsck_bookmark *bk = &lfsck->li_bookmark_ram; - struct lfsck_namespace *ns = com->lc_file_ram; -- int rc; - - down_read(&com->lc_sem); - seq_printf(m, "name: lfsck_namespace\n" -@@ -4261,43 +4260,23 @@ lfsck_namespace_dump(const struct lu_env *env, struct lfsck_component *com, - bk->lb_version, - lfsck_status2names(ns->ln_status)); - -- rc = lfsck_bits_dump(m, ns->ln_flags, lfsck_flags_names, "flags"); -- if (rc < 0) -- goto out; -+ lfsck_bits_dump(m, ns->ln_flags, lfsck_flags_names, "flags"); - -- rc = lfsck_bits_dump(m, bk->lb_param, lfsck_param_names, "param"); -- if (rc < 0) -- goto out; -+ lfsck_bits_dump(m, bk->lb_param, lfsck_param_names, "param"); - -- rc = lfsck_time_dump(m, ns->ln_time_last_complete, -- "last_completed"); -- if (rc < 0) -- goto out; -+ lfsck_time_dump(m, ns->ln_time_last_complete, "last_completed"); - -- rc = lfsck_time_dump(m, ns->ln_time_latest_start, -- "latest_start"); -- if (rc < 0) -- goto out; -+ lfsck_time_dump(m, ns->ln_time_latest_start, "latest_start"); - -- rc = lfsck_time_dump(m, ns->ln_time_last_checkpoint, -- "last_checkpoint"); -- if (rc < 0) -- goto out; -+ lfsck_time_dump(m, ns->ln_time_last_checkpoint, "last_checkpoint"); - -- rc = lfsck_pos_dump(m, &ns->ln_pos_latest_start, -- "latest_start_position"); -- if (rc < 0) -- goto out; -+ lfsck_pos_dump(m, &ns->ln_pos_latest_start, "latest_start_position"); - -- rc = lfsck_pos_dump(m, &ns->ln_pos_last_checkpoint, -- "last_checkpoint_position"); -- if (rc < 0) -- goto out; -+ lfsck_pos_dump(m, &ns->ln_pos_last_checkpoint, -+ "last_checkpoint_position"); - -- rc = lfsck_pos_dump(m, &ns->ln_pos_first_inconsistent, -- "first_failure_position"); -- if (rc < 0) -- goto out; -+ lfsck_pos_dump(m, &ns->ln_pos_first_inconsistent, -+ "first_failure_position"); - - if (ns->ln_status == LS_SCANNING_PHASE1) { - struct lfsck_position pos; -@@ -4319,13 +4298,13 @@ lfsck_namespace_dump(const struct lu_env *env, struct lfsck_component *com, - - lfsck_namespace_dump_statistics(m, ns, checked, 0, rtime, 0); - seq_printf(m, "average_speed_phase1: "LPU64" items/sec\n" -- "average_speed_phase2: N/A\n" -- "average_speed_total: "LPU64" items/sec\n" -- "real_time_speed_phase1: "LPU64" items/sec\n" -- "real_time_speed_phase2: N/A\n", -- speed, -- speed, -- new_checked); -+ "average_speed_phase2: N/A\n" -+ "average_speed_total: "LPU64" items/sec\n" -+ "real_time_speed_phase1: "LPU64" items/sec\n" -+ "real_time_speed_phase2: N/A\n", -+ speed, -+ speed, -+ new_checked); - - LASSERT(lfsck->li_di_oit != NULL); - -@@ -4389,16 +4368,16 @@ lfsck_namespace_dump(const struct lu_env *env, struct lfsck_component *com, - checked, - ns->ln_run_time_phase1, rtime); - seq_printf(m, "average_speed_phase1: "LPU64" items/sec\n" -- "average_speed_phase2: "LPU64" objs/sec\n" -- "average_speed_total: "LPU64" items/sec\n" -- "real_time_speed_phase1: N/A\n" -- "real_time_speed_phase2: "LPU64" objs/sec\n" -- "current_position: "DFID"\n", -- speed1, -- speed2, -- speed0, -- new_checked, -- PFID(&ns->ln_fid_latest_scanned_phase2)); -+ "average_speed_phase2: "LPU64" objs/sec\n" -+ "average_speed_total: "LPU64" items/sec\n" -+ "real_time_speed_phase1: N/A\n" -+ "real_time_speed_phase2: "LPU64" objs/sec\n" -+ "current_position: "DFID"\n", -+ speed1, -+ speed2, -+ speed0, -+ new_checked, -+ PFID(&ns->ln_fid_latest_scanned_phase2)); - } else { - __u64 speed1 = ns->ln_items_checked; - __u64 speed2 = ns->ln_objs_checked_phase2; -@@ -4423,18 +4402,17 @@ lfsck_namespace_dump(const struct lu_env *env, struct lfsck_component *com, - ns->ln_run_time_phase1, - ns->ln_run_time_phase2); - seq_printf(m, "average_speed_phase1: "LPU64" items/sec\n" -- "average_speed_phase2: "LPU64" objs/sec\n" -- "average_speed_total: "LPU64" items/sec\n" -- "real_time_speed_phase1: N/A\n" -- "real_time_speed_phase2: N/A\n" -- "current_position: N/A\n", -- speed1, -- speed2, -- speed0); -+ "average_speed_phase2: "LPU64" objs/sec\n" -+ "average_speed_total: "LPU64" items/sec\n" -+ "real_time_speed_phase1: N/A\n" -+ "real_time_speed_phase2: N/A\n" -+ "current_position: N/A\n", -+ speed1, -+ speed2, -+ speed0); - } --out: -+ - up_read(&com->lc_sem); -- return 0; - } - - static int lfsck_namespace_double_scan(const struct lu_env *env, -diff --git a/lustre/llite/lproc_llite.c b/lustre/llite/lproc_llite.c -index e631f50..1767a00 100644 ---- a/lustre/llite/lproc_llite.c -+++ b/lustre/llite/lproc_llite.c -@@ -66,7 +66,7 @@ static int ll_blksize_seq_show(struct seq_file *m, void *v) - cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS), - OBD_STATFS_NODELAY); - if (!rc) -- rc = seq_printf(m, "%u\n", osfs.os_bsize); -+ seq_printf(m, "%u\n", osfs.os_bsize); - return rc; - } - LPROC_SEQ_FOPS_RO(ll_blksize); -@@ -88,7 +88,7 @@ static int ll_kbytestotal_seq_show(struct seq_file *m, void *v) - while (blk_size >>= 1) - result <<= 1; - -- rc = seq_printf(m, LPU64"\n", result); -+ seq_printf(m, LPU64"\n", result); - } - return rc; - } -@@ -111,7 +111,7 @@ static int ll_kbytesfree_seq_show(struct seq_file *m, void *v) - while (blk_size >>= 1) - result <<= 1; - -- rc = seq_printf(m, LPU64"\n", result); -+ seq_printf(m, LPU64"\n", result); - } - return rc; - } -@@ -134,7 +134,7 @@ static int ll_kbytesavail_seq_show(struct seq_file *m, void *v) - while (blk_size >>= 1) - result <<= 1; - -- rc = seq_printf(m, LPU64"\n", result); -+ seq_printf(m, LPU64"\n", result); - } - return rc; - } -@@ -151,7 +151,7 @@ static int ll_filestotal_seq_show(struct seq_file *m, void *v) - cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS), - OBD_STATFS_NODELAY); - if (!rc) -- rc = seq_printf(m, LPU64"\n", osfs.os_files); -+ seq_printf(m, LPU64"\n", osfs.os_files); - return rc; - } - LPROC_SEQ_FOPS_RO(ll_filestotal); -@@ -167,7 +167,7 @@ static int ll_filesfree_seq_show(struct seq_file *m, void *v) - cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS), - OBD_STATFS_NODELAY); - if (!rc) -- rc = seq_printf(m, LPU64"\n", osfs.os_ffree); -+ seq_printf(m, LPU64"\n", osfs.os_ffree); - return rc; - } - LPROC_SEQ_FOPS_RO(ll_filesfree); -@@ -175,15 +175,14 @@ LPROC_SEQ_FOPS_RO(ll_filesfree); - static int ll_client_type_seq_show(struct seq_file *m, void *v) - { - struct ll_sb_info *sbi = ll_s2sbi((struct super_block *)m->private); -- int rc; - - LASSERT(sbi != NULL); - - if (sbi->ll_flags & LL_SBI_RMT_CLIENT) -- rc = seq_printf(m, "remote client\n"); -+ seq_puts(m, "remote client\n"); - else -- rc = seq_printf(m, "local client\n"); -- return rc; -+ seq_puts(m, "local client\n"); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ll_client_type); - -@@ -192,7 +191,8 @@ static int ll_fstype_seq_show(struct seq_file *m, void *v) - struct super_block *sb = m->private; - - LASSERT(sb != NULL); -- return seq_printf(m, "%s\n", sb->s_type->name); -+ seq_printf(m, "%s\n", sb->s_type->name); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ll_fstype); - -@@ -201,7 +201,8 @@ static int ll_sb_uuid_seq_show(struct seq_file *m, void *v) - struct super_block *sb = m->private; - - LASSERT(sb != NULL); -- return seq_printf(m, "%s\n", ll_s2sbi(sb)->ll_sb_uuid.uuid); -+ seq_printf(m, "%s\n", ll_s2sbi(sb)->ll_sb_uuid.uuid); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ll_sb_uuid); - -@@ -209,7 +210,8 @@ static int ll_xattr_cache_seq_show(struct seq_file *m, void *v) - { - struct ll_sb_info *sbi = ll_s2sbi((struct super_block *)m->private); - -- return seq_printf(m, "%u\n", sbi->ll_xattr_cache_enabled); -+ seq_printf(m, "%u\n", sbi->ll_xattr_cache_enabled); -+ return 0; - } - - static ssize_t ll_xattr_cache_seq_write(struct file *file, -@@ -407,17 +409,17 @@ static int ll_max_cached_mb_seq_show(struct seq_file *m, void *v) - - max_cached_mb = cache->ccc_lru_max >> shift; - unused_mb = atomic_long_read(&cache->ccc_lru_left) >> shift; -- return seq_printf(m, -- "users: %d\n" -- "max_cached_mb: %ld\n" -- "used_mb: %ld\n" -- "unused_mb: %ld\n" -- "reclaim_count: %u\n", -- atomic_read(&cache->ccc_users), -- max_cached_mb, -- max_cached_mb - unused_mb, -- unused_mb, -- cache->ccc_lru_shrinkers); -+ seq_printf(m, "users: %d\n" -+ "max_cached_mb: %ld\n" -+ "used_mb: %ld\n" -+ "unused_mb: %ld\n" -+ "reclaim_count: %u\n", -+ atomic_read(&cache->ccc_users), -+ max_cached_mb, -+ max_cached_mb - unused_mb, -+ unused_mb, -+ cache->ccc_lru_shrinkers); -+ return 0; - } - - static ssize_t -@@ -538,7 +540,8 @@ static int ll_checksum_seq_show(struct seq_file *m, void *v) - struct super_block *sb = m->private; - struct ll_sb_info *sbi = ll_s2sbi(sb); - -- return seq_printf(m, "%u\n", (sbi->ll_flags & LL_SBI_CHECKSUM) ? 1 : 0); -+ seq_printf(m, "%u\n", (sbi->ll_flags & LL_SBI_CHECKSUM) ? 1 : 0); -+ return 0; - } - - static ssize_t ll_checksum_seq_write(struct file *file, -@@ -575,13 +578,14 @@ static int ll_rd_track_id(struct seq_file *m, enum stats_track_type type) - struct super_block *sb = m->private; - - if (ll_s2sbi(sb)->ll_stats_track_type == type) { -- return seq_printf(m, "%d\n", -- ll_s2sbi(sb)->ll_stats_track_id); -+ seq_printf(m, "%d\n", -+ ll_s2sbi(sb)->ll_stats_track_id); - } else if (ll_s2sbi(sb)->ll_stats_track_type == STATS_TRACK_ALL) { -- return seq_printf(m, "0 (all)\n"); -+ seq_puts(m, "0 (all)\n"); - } else { -- return seq_printf(m, "untracked\n"); -+ seq_puts(m, "untracked\n"); - } -+ return 0; - } - - static int ll_wr_track_id(const char __user *buffer, unsigned long count, -@@ -649,7 +653,8 @@ static int ll_statahead_max_seq_show(struct seq_file *m, void *v) - struct super_block *sb = m->private; - struct ll_sb_info *sbi = ll_s2sbi(sb); - -- return seq_printf(m, "%u\n", sbi->ll_sa_max); -+ seq_printf(m, "%u\n", sbi->ll_sa_max); -+ return 0; - } - - static ssize_t ll_statahead_max_seq_write(struct file *file, -@@ -679,8 +684,9 @@ static int ll_statahead_agl_seq_show(struct seq_file *m, void *v) - struct super_block *sb = m->private; - struct ll_sb_info *sbi = ll_s2sbi(sb); - -- return seq_printf(m, "%u\n", -- sbi->ll_flags & LL_SBI_AGL_ENABLED ? 1 : 0); -+ seq_printf(m, "%u\n", -+ sbi->ll_flags & LL_SBI_AGL_ENABLED ? 1 : 0); -+ return 0; - } - - static ssize_t ll_statahead_agl_seq_write(struct file *file, -@@ -709,13 +715,13 @@ static int ll_statahead_stats_seq_show(struct seq_file *m, void *v) - struct super_block *sb = m->private; - struct ll_sb_info *sbi = ll_s2sbi(sb); - -- return seq_printf(m, -- "statahead total: %u\n" -- "statahead wrong: %u\n" -- "agl total: %u\n", -- atomic_read(&sbi->ll_sa_total), -- atomic_read(&sbi->ll_sa_wrong), -- atomic_read(&sbi->ll_agl_total)); -+ seq_printf(m, "statahead total: %u\n" -+ "statahead wrong: %u\n" -+ "agl total: %u\n", -+ atomic_read(&sbi->ll_sa_total), -+ atomic_read(&sbi->ll_sa_wrong), -+ atomic_read(&sbi->ll_agl_total)); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ll_statahead_stats); - -@@ -724,8 +730,9 @@ static int ll_lazystatfs_seq_show(struct seq_file *m, void *v) - struct super_block *sb = m->private; - struct ll_sb_info *sbi = ll_s2sbi(sb); - -- return seq_printf(m, "%u\n", -- (sbi->ll_flags & LL_SBI_LAZYSTATFS) ? 1 : 0); -+ seq_printf(m, "%u\n", -+ (sbi->ll_flags & LL_SBI_LAZYSTATFS) ? 1 : 0); -+ return 0; - } - - static ssize_t ll_lazystatfs_seq_write(struct file *file, -@@ -760,7 +767,8 @@ static int ll_max_easize_seq_show(struct seq_file *m, void *v) - if (rc) - return rc; - -- return seq_printf(m, "%u\n", ealen); -+ seq_printf(m, "%u\n", ealen); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ll_max_easize); - -@@ -786,7 +794,8 @@ static int ll_default_easize_seq_show(struct seq_file *m, void *v) - if (rc) - return rc; - -- return seq_printf(m, "%u\n", ealen); -+ seq_printf(m, "%u\n", ealen); -+ return 0; - } - - /** -@@ -865,10 +874,11 @@ static int ll_unstable_stats_seq_show(struct seq_file *m, void *v) - pages = atomic_long_read(&cache->ccc_unstable_nr); - mb = (pages * PAGE_CACHE_SIZE) >> 20; - -- return seq_printf(m, "unstable_check: %8d\n" -- "unstable_pages: %12ld\n" -- "unstable_mb: %8d\n", -- cache->ccc_unstable_check, pages, mb); -+ seq_printf(m, "unstable_check: %8d\n" -+ "unstable_pages: %12ld\n" -+ "unstable_mb: %8d\n", -+ cache->ccc_unstable_check, pages, mb); -+ return 0; - } - - static ssize_t ll_unstable_stats_seq_write(struct file *file, -@@ -910,7 +920,8 @@ static int ll_root_squash_seq_show(struct seq_file *m, void *v) - struct ll_sb_info *sbi = ll_s2sbi(sb); - struct root_squash_info *squash = &sbi->ll_squash; - -- return seq_printf(m, "%u:%u\n", squash->rsi_uid, squash->rsi_gid); -+ seq_printf(m, "%u:%u\n", squash->rsi_uid, squash->rsi_gid); -+ return 0; - } - - static ssize_t ll_root_squash_seq_write(struct file *file, -@@ -932,20 +943,20 @@ static int ll_nosquash_nids_seq_show(struct seq_file *m, void *v) - struct super_block *sb = m->private; - struct ll_sb_info *sbi = ll_s2sbi(sb); - struct root_squash_info *squash = &sbi->ll_squash; -- int len, rc; -+ int len; - - down_read(&squash->rsi_sem); - if (!list_empty(&squash->rsi_nosquash_nids)) { - len = cfs_print_nidlist(m->buf + m->count, m->size - m->count, - &squash->rsi_nosquash_nids); - m->count += len; -- rc = seq_printf(m, "\n"); -+ seq_putc(m, '\n'); - } else { -- rc = seq_printf(m, "NONE\n"); -+ seq_puts(m, "NONE\n"); - } - up_read(&squash->rsi_sem); - -- return rc; -+ return 0; - } - - static ssize_t ll_nosquash_nids_seq_write(struct file *file, -@@ -1333,9 +1344,7 @@ static int ll_rw_extents_stats_pp_seq_show(struct seq_file *seq, void *v) - do_gettimeofday(&now); - - if (!sbi->ll_rw_stats_on) { -- seq_printf(seq, "disabled\n" -- "write anything in this file to activate, " -- "then 0 or \"[D/d]isabled\" to deactivate\n"); -+ seq_puts(seq, "disabled\n write anything in this file to activate, then 0 or \[D/d]isabled\" to deactivate\n"); - return 0; - } - seq_printf(seq, "snapshot_time: %lu.%lu (secs.usecs)\n", -@@ -1412,18 +1421,16 @@ static int ll_rw_extents_stats_seq_show(struct seq_file *seq, void *v) - do_gettimeofday(&now); - - if (!sbi->ll_rw_stats_on) { -- seq_printf(seq, "disabled\n" -- "write anything in this file to activate, " -- "then 0 or \"[D/d]isabled\" to deactivate\n"); -- return 0; -- } -- seq_printf(seq, "snapshot_time: %lu.%lu (secs.usecs)\n", -- now.tv_sec, now.tv_usec); -+ seq_puts(seq, "disabled\n write anything in this file to activate, then 0 or \"[D/d]isabled\" to deactivate\n"); -+ return 0; -+ } -+ seq_printf(seq, "snapshot_time: %lu.%lu (secs.usecs)\n", -+ now.tv_sec, now.tv_usec); - -- seq_printf(seq, "%15s %19s | %20s\n", " ", "read", "write"); -- seq_printf(seq, "%13s %14s %4s %4s | %14s %4s %4s\n", -- "extents", "calls", "%", "cum%", -- "calls", "%", "cum%"); -+ seq_printf(seq, "%15s %19s | %20s\n", " ", "read", "write"); -+ seq_printf(seq, "%13s %14s %4s %4s | %14s %4s %4s\n", -+ "extents", "calls", "%", "cum%", -+ "calls", "%", "cum%"); - spin_lock(&sbi->ll_lock); - ll_display_extents_info(io_extents, seq, LL_PROCESS_HIST_MAX); - spin_unlock(&sbi->ll_lock); -@@ -1591,11 +1598,9 @@ static int ll_rw_offset_stats_seq_show(struct seq_file *seq, void *v) - do_gettimeofday(&now); - - if (!sbi->ll_rw_stats_on) { -- seq_printf(seq, "disabled\n" -- "write anything in this file to activate, " -- "then 0 or \"[D/d]isabled\" to deactivate\n"); -- return 0; -- } -+ seq_puts(seq, "disabled\n write anything in this file to activate, then 0 or \"[D/d]isabled\" to deactivate\n"); -+ return 0; -+ } - spin_lock(&sbi->ll_process_lock); - - seq_printf(seq, "snapshot_time: %lu.%lu (secs.usecs)\n", -diff --git a/lustre/lmv/lproc_lmv.c b/lustre/lmv/lproc_lmv.c -index 1f8b5a6..251dd93 100644 ---- a/lustre/lmv/lproc_lmv.c -+++ b/lustre/lmv/lproc_lmv.c -@@ -55,7 +55,8 @@ static int lmv_numobd_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - desc = &dev->u.lmv.desc; -- return seq_printf(m, "%u\n", desc->ld_tgt_count); -+ seq_printf(m, "%u\n", desc->ld_tgt_count); -+ return 0; - } - LPROC_SEQ_FOPS_RO(lmv_numobd); - -@@ -89,7 +90,8 @@ static int lmv_placement_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - lmv = &dev->u.lmv; -- return seq_printf(m, "%s\n", placement_policy2name(lmv->lmv_placement)); -+ seq_printf(m, "%s\n", placement_policy2name(lmv->lmv_placement)); -+ return 0; - } - - #define MAX_POLICY_STRING_SIZE 64 -@@ -137,7 +139,8 @@ static int lmv_activeobd_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - desc = &dev->u.lmv.desc; -- return seq_printf(m, "%u\n", desc->ld_active_tgt_count); -+ seq_printf(m, "%u\n", desc->ld_active_tgt_count); -+ return 0; - } - LPROC_SEQ_FOPS_RO(lmv_activeobd); - -@@ -148,7 +151,8 @@ static int lmv_desc_uuid_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - lmv = &dev->u.lmv; -- return seq_printf(m, "%s\n", lmv->desc.ld_uuid.uuid); -+ seq_printf(m, "%s\n", lmv->desc.ld_uuid.uuid); -+ return 0; - } - LPROC_SEQ_FOPS_RO(lmv_desc_uuid); - -@@ -178,8 +182,9 @@ static int lmv_tgt_seq_show(struct seq_file *p, void *v) - - if (tgt == NULL) - return 0; -- return seq_printf(p, "%u: %s %sACTIVE\n", tgt->ltd_idx, -- tgt->ltd_uuid.uuid, tgt->ltd_active ? "" : "IN"); -+ seq_printf(p, "%u: %s %sACTIVE\n", tgt->ltd_idx, -+ tgt->ltd_uuid.uuid, tgt->ltd_active ? "" : "IN"); -+ return 0; - } - - static const struct seq_operations lmv_tgt_sops = { -diff --git a/lustre/lod/lproc_lod.c b/lustre/lod/lproc_lod.c -index b02697f..06e2314 100644 ---- a/lustre/lod/lproc_lod.c -+++ b/lustre/lod/lproc_lod.c -@@ -65,8 +65,9 @@ static int lod_stripesize_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - lod = lu2lod_dev(dev->obd_lu_dev); -- return seq_printf(m, LPU64"\n", -- lod->lod_desc.ld_default_stripe_size); -+ seq_printf(m, LPU64"\n", -+ lod->lod_desc.ld_default_stripe_size); -+ return 0; - } - - /** -@@ -120,8 +121,9 @@ static int lod_stripeoffset_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - lod = lu2lod_dev(dev->obd_lu_dev); -- return seq_printf(m, LPU64"\n", -- lod->lod_desc.ld_default_stripe_offset); -+ seq_printf(m, LPU64"\n", -+ lod->lod_desc.ld_default_stripe_offset); -+ return 0; - } - - /** -@@ -175,7 +177,8 @@ static int lod_stripetype_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - lod = lu2lod_dev(dev->obd_lu_dev); -- return seq_printf(m, "%u\n", lod->lod_desc.ld_pattern); -+ seq_printf(m, "%u\n", lod->lod_desc.ld_pattern); -+ return 0; - } - - /** -@@ -227,8 +230,9 @@ static int lod_stripecount_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - lod = lu2lod_dev(dev->obd_lu_dev); -- return seq_printf(m, "%d\n", -- (__s16)(lod->lod_desc.ld_default_stripe_count + 1) - 1); -+ seq_printf(m, "%d\n", -+ (__s16)(lod->lod_desc.ld_default_stripe_count + 1) - 1); -+ return 0; - } - - /** -@@ -280,7 +284,8 @@ static int lod_numobd_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - lod = lu2lod_dev(dev->obd_lu_dev); -- return seq_printf(m, "%u\n", lod->lod_desc.ld_tgt_count); -+ seq_printf(m, "%u\n", lod->lod_desc.ld_tgt_count); -+ return 0; - } - LPROC_SEQ_FOPS_RO(lod_numobd); - -@@ -300,7 +305,8 @@ static int lod_activeobd_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - lod = lu2lod_dev(dev->obd_lu_dev); -- return seq_printf(m, "%u\n", lod->lod_desc.ld_active_tgt_count); -+ seq_printf(m, "%u\n", lod->lod_desc.ld_active_tgt_count); -+ return 0; - } - LPROC_SEQ_FOPS_RO(lod_activeobd); - -@@ -320,7 +326,8 @@ static int lod_desc_uuid_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - lod = lu2lod_dev(dev->obd_lu_dev); -- return seq_printf(m, "%s\n", lod->lod_desc.ld_uuid.uuid); -+ seq_printf(m, "%s\n", lod->lod_desc.ld_uuid.uuid); -+ return 0; - } - LPROC_SEQ_FOPS_RO(lod_desc_uuid); - -@@ -344,8 +351,9 @@ static int lod_qos_priofree_seq_show(struct seq_file *m, void *v) - struct lod_device *lod = lu2lod_dev(dev->obd_lu_dev); - - LASSERT(lod != NULL); -- return seq_printf(m, "%d%%\n", -- (lod->lod_qos.lq_prio_free * 100 + 255) >> 8); -+ seq_printf(m, "%d%%\n", -+ (lod->lod_qos.lq_prio_free * 100 + 255) >> 8); -+ return 0; - } - - /** -@@ -405,8 +413,9 @@ static int lod_qos_thresholdrr_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - lod = lu2lod_dev(dev->obd_lu_dev); -- return seq_printf(m, "%d%%\n", -- (lod->lod_qos.lq_threshold_rr * 100 + 255) >> 8); -+ seq_printf(m, "%d%%\n", -+ (lod->lod_qos.lq_threshold_rr * 100 + 255) >> 8); -+ return 0; - } - - /** -@@ -468,7 +477,8 @@ static int lod_qos_maxage_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - lod = lu2lod_dev(dev->obd_lu_dev); -- return seq_printf(m, "%u Sec\n", lod->lod_desc.ld_qos_maxage); -+ seq_printf(m, "%u Sec\n", lod->lod_desc.ld_qos_maxage); -+ return 0; - } - - /** -@@ -612,9 +622,10 @@ static int lod_osts_seq_show(struct seq_file *p, void *v) - } else if (rc) - return rc; - -- return seq_printf(p, "%d: %s %sACTIVE\n", idx, -- obd_uuid2str(&ost_desc->ltd_uuid), -- active ? "" : "IN"); -+ seq_printf(p, "%d: %s %sACTIVE\n", idx, -+ obd_uuid2str(&ost_desc->ltd_uuid), -+ active ? "" : "IN"); -+ return 0; - } - - static const struct seq_operations lod_osts_sops = { -@@ -664,7 +675,8 @@ static int lod_lmv_failout_seq_show(struct seq_file *m, void *v) - LASSERT(dev != NULL); - lod = lu2lod_dev(dev->obd_lu_dev); - -- return seq_printf(m, "%d\n", lod->lod_lmv_failout ? 1 : 0); -+ seq_printf(m, "%d\n", lod->lod_lmv_failout ? 1 : 0); -+ return 0; - } - - /** -diff --git a/lustre/lov/lproc_lov.c b/lustre/lov/lproc_lov.c -index 386ee62..4732a35 100644 ---- a/lustre/lov/lproc_lov.c -+++ b/lustre/lov/lproc_lov.c -@@ -51,7 +51,8 @@ static int lov_stripesize_seq_show(struct seq_file *m, void *v) - LASSERT(dev != NULL); - desc = &dev->u.lov.desc; - -- return seq_printf(m, LPU64"\n", desc->ld_default_stripe_size); -+ seq_printf(m, LPU64"\n", desc->ld_default_stripe_size); -+ return 0; - } - - static ssize_t lov_stripesize_seq_write(struct file *file, -@@ -82,7 +83,8 @@ static int lov_stripeoffset_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - desc = &dev->u.lov.desc; -- return seq_printf(m, LPU64"\n", desc->ld_default_stripe_offset); -+ seq_printf(m, LPU64"\n", desc->ld_default_stripe_offset); -+ return 0; - } - - static ssize_t lov_stripeoffset_seq_write(struct file *file, -@@ -112,7 +114,8 @@ static int lov_stripetype_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - desc = &dev->u.lov.desc; -- return seq_printf(m, "%u\n", desc->ld_pattern); -+ seq_printf(m, "%u\n", desc->ld_pattern); -+ return 0; - } - - static ssize_t lov_stripetype_seq_write(struct file *file, -@@ -142,8 +145,9 @@ static int lov_stripecount_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - desc = &dev->u.lov.desc; -- return seq_printf(m, "%d\n", -- (__s16)(desc->ld_default_stripe_count + 1) - 1); -+ seq_printf(m, "%d\n", -+ (__s16)(desc->ld_default_stripe_count + 1) - 1); -+ return 0; - } - - static ssize_t lov_stripecount_seq_write(struct file *file, -@@ -173,7 +177,8 @@ static int lov_numobd_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - desc = &dev->u.lov.desc; -- return seq_printf(m, "%u\n", desc->ld_tgt_count); -+ seq_printf(m, "%u\n", desc->ld_tgt_count); -+ return 0; - } - LPROC_SEQ_FOPS_RO(lov_numobd); - -@@ -184,7 +189,8 @@ static int lov_activeobd_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - desc = &dev->u.lov.desc; -- return seq_printf(m, "%u\n", desc->ld_active_tgt_count); -+ seq_printf(m, "%u\n", desc->ld_active_tgt_count); -+ return 0; - } - LPROC_SEQ_FOPS_RO(lov_activeobd); - -@@ -195,7 +201,8 @@ static int lov_desc_uuid_seq_show(struct seq_file *m, void *v) - - LASSERT(dev != NULL); - lov = &dev->u.lov; -- return seq_printf(m, "%s\n", lov->desc.ld_uuid.uuid); -+ seq_printf(m, "%s\n", lov->desc.ld_uuid.uuid); -+ return 0; - } - LPROC_SEQ_FOPS_RO(lov_desc_uuid); - -@@ -231,9 +238,10 @@ static void *lov_tgt_seq_next(struct seq_file *p, void *v, loff_t *pos) - static int lov_tgt_seq_show(struct seq_file *p, void *v) - { - struct lov_tgt_desc *tgt = v; -- return seq_printf(p, "%d: %s %sACTIVE\n", tgt->ltd_index, -- obd_uuid2str(&tgt->ltd_uuid), -- tgt->ltd_active ? "" : "IN"); -+ seq_printf(p, "%d: %s %sACTIVE\n", tgt->ltd_index, -+ obd_uuid2str(&tgt->ltd_uuid), -+ tgt->ltd_active ? "" : "IN"); -+ return 0; - } - - static const struct seq_operations lov_tgt_sops = { -diff --git a/lustre/mdc/lproc_mdc.c b/lustre/mdc/lproc_mdc.c -index 023b779..c8b0cd6 100644 ---- a/lustre/mdc/lproc_mdc.c -+++ b/lustre/mdc/lproc_mdc.c -@@ -46,12 +46,11 @@ - static int mdc_active_seq_show(struct seq_file *m, void *v) - { - struct obd_device *dev = m->private; -- int rc; - - LPROCFS_CLIMP_CHECK(dev); -- rc = seq_printf(m, "%d\n", !dev->u.cli.cl_import->imp_deactive); -+ seq_printf(m, "%d\n", !dev->u.cli.cl_import->imp_deactive); - LPROCFS_CLIMP_EXIT(dev); -- return rc; -+ return 0; - } - - static ssize_t mdc_active_seq_write(struct file *file, -@@ -82,12 +81,11 @@ static int mdc_max_rpcs_in_flight_seq_show(struct seq_file *m, void *v) - { - struct obd_device *dev = m->private; - __u32 max; -- int rc; - - max = obd_get_max_rpcs_in_flight(&dev->u.cli); -- rc = seq_printf(m, "%u\n", max); -+ seq_printf(m, "%u\n", max); - -- return rc; -+ return 0; - } - - static ssize_t mdc_max_rpcs_in_flight_seq_write(struct file *file, -@@ -115,12 +113,11 @@ static int mdc_max_mod_rpcs_in_flight_seq_show(struct seq_file *m, void *v) - { - struct obd_device *dev = m->private; - __u16 max; -- int rc; - - max = obd_get_max_mod_rpcs_in_flight(&dev->u.cli); -- rc = seq_printf(m, "%hu\n", max); -+ seq_printf(m, "%hu\n", max); - -- return rc; -+ return 0; - } - - static ssize_t mdc_max_mod_rpcs_in_flight_seq_write(struct file *file, -diff --git a/lustre/mdd/mdd_lproc.c b/lustre/mdd/mdd_lproc.c -index c09ee9c..1329852 100644 ---- a/lustre/mdd/mdd_lproc.c -+++ b/lustre/mdd/mdd_lproc.c -@@ -78,7 +78,8 @@ static int mdd_atime_diff_seq_show(struct seq_file *m, void *data) - { - struct mdd_device *mdd = m->private; - -- return seq_printf(m, "%lu\n", mdd->mdd_atime_diff); -+ seq_printf(m, "%lu\n", mdd->mdd_atime_diff); -+ return 0; - } - LPROC_SEQ_FOPS(mdd_atime_diff); - -@@ -182,7 +183,8 @@ static int mdd_sync_perm_seq_show(struct seq_file *m, void *data) - struct mdd_device *mdd = m->private; - - LASSERT(mdd != NULL); -- return seq_printf(m, "%d\n", mdd->mdd_sync_permission); -+ seq_printf(m, "%d\n", mdd->mdd_sync_permission); -+ return 0; - } - - static ssize_t -diff --git a/lustre/mdt/mdt_coordinator.c b/lustre/mdt/mdt_coordinator.c -index 27ff1e3..9f371bc 100644 ---- a/lustre/mdt/mdt_coordinator.c -+++ b/lustre/mdt/mdt_coordinator.c -@@ -2067,17 +2067,20 @@ int mdt_hsm_cdt_control_seq_show(struct seq_file *m, void *data) - static int - mdt_hsm_request_mask_show(struct seq_file *m, __u64 mask) - { -- int i, rc = 0; -+ bool first = true; -+ int i; - ENTRY; - - for (i = 0; i < 8 * sizeof(mask); i++) { -- if (mask & (1UL << i)) -- rc += seq_printf(m, "%s%s", rc == 0 ? "" : " ", -- hsm_copytool_action2name(i)); -+ if (mask & (1UL << i)) { -+ seq_printf(m, "%s%s", first ? "" : " ", -+ hsm_copytool_action2name(i)); -+ first = false; -+ } - } -- rc += seq_printf(m, "\n"); -+ seq_putc(m, '\n'); - -- RETURN(rc); -+ RETURN(0); - } - - static int -diff --git a/lustre/mdt/mdt_hsm_cdt_actions.c b/lustre/mdt/mdt_hsm_cdt_actions.c -index 59cbfe2..342a919 100644 ---- a/lustre/mdt/mdt_hsm_cdt_actions.c -+++ b/lustre/mdt/mdt_hsm_cdt_actions.c -@@ -398,7 +398,7 @@ static int hsm_actions_show_cb(const struct lu_env *env, - struct llog_agent_req_rec *larr = (struct llog_agent_req_rec *)hdr; - struct seq_file *s = data; - struct agent_action_iterator *aai; -- int rc, sz; -+ int sz; - size_t count; - char buf[12]; - ENTRY; -@@ -417,35 +417,29 @@ static int hsm_actions_show_cb(const struct lu_env *env, - - count = s->count; - sz = larr->arr_hai.hai_len - sizeof(larr->arr_hai); -- rc = seq_printf(s, "lrh=[type=%X len=%d idx=%d/%d] fid="DFID -- " dfid="DFID -- " compound/cookie="LPX64"/"LPX64 -- " action=%s archive#=%d flags="LPX64 -- " extent="LPX64"-"LPX64 -- " gid="LPX64" datalen=%d status=%s" -- " data=[%s]\n", -- hdr->lrh_type, hdr->lrh_len, -- llh->lgh_hdr->llh_cat_idx, hdr->lrh_index, -- PFID(&larr->arr_hai.hai_fid), -- PFID(&larr->arr_hai.hai_dfid), -- larr->arr_compound_id, larr->arr_hai.hai_cookie, -- hsm_copytool_action2name(larr->arr_hai.hai_action), -- larr->arr_archive_id, -- larr->arr_flags, -- larr->arr_hai.hai_extent.offset, -- larr->arr_hai.hai_extent.length, -- larr->arr_hai.hai_gid, sz, -- agent_req_status2name(larr->arr_status), -- hai_dump_data_field(&larr->arr_hai, buf, sizeof(buf))); -- if (rc == 0) { -- aai->aai_cat_index = llh->lgh_hdr->llh_cat_idx; -- aai->aai_index = hdr->lrh_index; -- } else { -- if (s->count == s->size && count > 0) /* rewind the buffer */ -- s->count = count; -- rc = LLOG_PROC_BREAK; -- } -- RETURN(rc); -+ seq_printf(s, "lrh=[type=%X len=%d idx=%d/%d] fid="DFID -+ " dfid="DFID" compound/cookie="LPX64"/"LPX64 -+ " action=%s archive#=%d flags="LPX64 -+ " extent="LPX64"-"LPX64 -+ " gid="LPX64" datalen=%d status=%s data=[%s]\n", -+ hdr->lrh_type, hdr->lrh_len, -+ llh->lgh_hdr->llh_cat_idx, hdr->lrh_index, -+ PFID(&larr->arr_hai.hai_fid), -+ PFID(&larr->arr_hai.hai_dfid), -+ larr->arr_compound_id, larr->arr_hai.hai_cookie, -+ hsm_copytool_action2name(larr->arr_hai.hai_action), -+ larr->arr_archive_id, -+ larr->arr_flags, -+ larr->arr_hai.hai_extent.offset, -+ larr->arr_hai.hai_extent.length, -+ larr->arr_hai.hai_gid, sz, -+ agent_req_status2name(larr->arr_status), -+ hai_dump_data_field(&larr->arr_hai, buf, sizeof(buf))); -+ -+ aai->aai_cat_index = llh->lgh_hdr->llh_cat_idx; -+ aai->aai_index = hdr->lrh_index; -+ -+ RETURN(0); - } - - /** -diff --git a/lustre/mdt/mdt_lproc.c b/lustre/mdt/mdt_lproc.c -index 58728e8..612da16 100644 ---- a/lustre/mdt/mdt_lproc.c -+++ b/lustre/mdt/mdt_lproc.c -@@ -217,7 +217,8 @@ static int mdt_identity_expire_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev); - -- return seq_printf(m, "%u\n", mdt->mdt_identity_cache->uc_entry_expire); -+ seq_printf(m, "%u\n", mdt->mdt_identity_cache->uc_entry_expire); -+ return 0; - } - - static ssize_t -@@ -243,7 +244,8 @@ static int mdt_identity_acquire_expire_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev); - -- return seq_printf(m, "%u\n", mdt->mdt_identity_cache->uc_acquire_expire); -+ seq_printf(m, "%u\n", mdt->mdt_identity_cache->uc_acquire_expire); -+ return 0; - } - - static ssize_t -@@ -479,7 +481,8 @@ static int mdt_evict_tgt_nids_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev); - -- return seq_printf(m, "%u\n", mdt->mdt_opts.mo_evict_tgt_nids); -+ seq_printf(m, "%u\n", mdt->mdt_opts.mo_evict_tgt_nids); -+ return 0; - } - - static ssize_t -@@ -505,7 +508,8 @@ static int mdt_sec_level_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev); - -- return seq_printf(m, "%d\n", mdt->mdt_lut.lut_sec_level); -+ seq_printf(m, "%d\n", mdt->mdt_lut.lut_sec_level); -+ return 0; - } - - static ssize_t -@@ -540,7 +544,8 @@ static int mdt_cos_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev); - -- return seq_printf(m, "%u\n", mdt_cos_is_enabled(mdt)); -+ seq_printf(m, "%u\n", mdt_cos_is_enabled(mdt)); -+ return 0; - } - - static ssize_t -@@ -566,8 +571,9 @@ static int mdt_root_squash_seq_show(struct seq_file *m, void *data) - struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev); - struct root_squash_info *squash = &mdt->mdt_squash; - -- return seq_printf(m, "%u:%u\n", squash->rsi_uid, -- squash->rsi_gid); -+ seq_printf(m, "%u:%u\n", squash->rsi_uid, -+ squash->rsi_gid); -+ return 0; - } - - static ssize_t -@@ -589,19 +595,19 @@ static int mdt_nosquash_nids_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev); - struct root_squash_info *squash = &mdt->mdt_squash; -- int len = 0, rc; -+ int len = 0; - - down_read(&squash->rsi_sem); - if (!list_empty(&squash->rsi_nosquash_nids)) { - len = cfs_print_nidlist(m->buf + m->count, m->size - m->count, - &squash->rsi_nosquash_nids); - m->count += len; -- rc = seq_printf(m, "\n"); -+ seq_putc(m, '\n'); - } else -- rc = seq_printf(m, "NONE\n"); -+ seq_puts(m, "NONE\n"); - up_read(&squash->rsi_sem); - -- return rc; -+ return 0; - } - - static ssize_t -@@ -623,7 +629,8 @@ static int mdt_enable_remote_dir_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev); - -- return seq_printf(m, "%u\n", mdt->mdt_enable_remote_dir); -+ seq_printf(m, "%u\n", mdt->mdt_enable_remote_dir); -+ return 0; - } - - static ssize_t -@@ -653,8 +660,9 @@ static int mdt_enable_remote_dir_gid_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev); - -- return seq_printf(m, "%d\n", -- (int)mdt->mdt_enable_remote_dir_gid); -+ seq_printf(m, "%d\n", -+ (int)mdt->mdt_enable_remote_dir_gid); -+ return 0; - } - - static ssize_t -@@ -692,7 +700,8 @@ static int mdt_slc_seq_show(struct seq_file *m, void *data) - struct lu_target *tgt = obd->u.obt.obt_lut; - char *slc_states[] = {"never", "blocking", "always" }; - -- return seq_printf(m, "%s\n", slc_states[tgt->lut_sync_lock_cancel]); -+ seq_printf(m, "%s\n", slc_states[tgt->lut_sync_lock_cancel]); -+ return 0; - } - LPROC_SEQ_FOPS_RO(mdt_slc); - -@@ -710,7 +719,8 @@ static int mdt_async_commit_count_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev); - -- return seq_printf(m, "%d\n", atomic_read(&mdt->mdt_async_commit_count)); -+ seq_printf(m, "%d\n", atomic_read(&mdt->mdt_async_commit_count)); -+ return 0; - } - - static ssize_t -@@ -747,7 +757,8 @@ static int mdt_sync_count_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct lu_target *tgt = obd->u.obt.obt_lut; - -- return seq_printf(m, "%d\n", atomic_read(&tgt->lut_sync_count)); -+ seq_printf(m, "%d\n", atomic_read(&tgt->lut_sync_count)); -+ return 0; - } - - static ssize_t -diff --git a/lustre/mgc/mgc_request.c b/lustre/mgc/mgc_request.c -index 9dc2a3e..3c83dc0 100644 ---- a/lustre/mgc/mgc_request.c -+++ b/lustre/mgc/mgc_request.c -@@ -490,8 +490,8 @@ int lprocfs_mgc_rd_ir_state(struct seq_file *m, void *data) - if (cld->cld_recover == NULL) - continue; - seq_printf(m, " - { client: %s, nidtbl_version: %u }\n", -- cld->cld_logname, -- cld->cld_recover->cld_cfg.cfg_last_idx); -+ cld->cld_logname, -+ cld->cld_recover->cld_cfg.cfg_last_idx); - } - spin_unlock(&config_list_lock); - -diff --git a/lustre/obdclass/genops.c b/lustre/obdclass/genops.c -index 7ca03f0..c13c9333 100644 ---- a/lustre/obdclass/genops.c -+++ b/lustre/obdclass/genops.c -@@ -2184,8 +2184,8 @@ int obd_mod_rpc_stats_seq_show(struct client_obd *cli, - unsigned long mod = cli->cl_mod_rpcs_hist.oh_buckets[i]; - mod_cum += mod; - seq_printf(seq, "%d:\t\t%10lu %3lu %3lu\n", -- i, mod, pct(mod, mod_tot), -- pct(mod_cum, mod_tot)); -+ i, mod, pct(mod, mod_tot), -+ pct(mod_cum, mod_tot)); - if (mod_cum == mod_tot) - break; - } -diff --git a/lustre/obdclass/linux/linux-module.c b/lustre/obdclass/linux/linux-module.c -index 200d19f..c019863 100644 ---- a/lustre/obdclass/linux/linux-module.c -+++ b/lustre/obdclass/linux/linux-module.c -@@ -215,21 +215,23 @@ struct miscdevice obd_psdev = { - #ifdef CONFIG_PROC_FS - static int obd_proc_version_seq_show(struct seq_file *m, void *v) - { -- return seq_printf(m, "lustre: %s\nkernel: %s\nbuild: %s\n", -- LUSTRE_VERSION_STRING, "patchless_client", -- BUILD_VERSION); -+ seq_printf(m, "lustre: %s\nkernel: %s\nbuild: %s\n", -+ LUSTRE_VERSION_STRING, "patchless_client", -+ BUILD_VERSION); -+ return 0; - } - LPROC_SEQ_FOPS_RO(obd_proc_version); - - static int obd_proc_pinger_seq_show(struct seq_file *m, void *v) - { -- return seq_printf(m, "%s\n", -+ seq_printf(m, "%s\n", - #ifdef ENABLE_PINGER -- "on" -+ "on" - #else -- "off" -+ "off" - #endif -- ); -+ ); -+ return 0; - } - LPROC_SEQ_FOPS_RO(obd_proc_pinger); - -@@ -266,7 +268,7 @@ static int obd_proc_health_seq_show(struct seq_file *m, void *data) - - if (obd_health_check(NULL, obd)) { - seq_printf(m, "device %s reported unhealthy\n", -- obd->obd_name); -+ obd->obd_name); - healthy = false; - } - class_decref(obd, __FUNCTION__, current); -@@ -275,7 +277,7 @@ static int obd_proc_health_seq_show(struct seq_file *m, void *data) - read_unlock(&obd_dev_lock); - - if (healthy) -- return seq_printf(m, "healthy\n"); -+ seq_puts(m, "healthy\n"); - - seq_printf(m, "NOT HEALTHY\n"); - return 0; -@@ -405,10 +407,11 @@ static int obd_device_list_seq_show(struct seq_file *p, void *v) - else - status = "--"; - -- return seq_printf(p, "%3d %s %s %s %s %d\n", -- (int)index, status, obd->obd_type->typ_name, -- obd->obd_name, obd->obd_uuid.uuid, -- atomic_read(&obd->obd_refcount)); -+ seq_printf(p, "%3d %s %s %s %s %d\n", -+ (int)index, status, obd->obd_type->typ_name, -+ obd->obd_name, obd->obd_uuid.uuid, -+ atomic_read(&obd->obd_refcount)); -+ return 0; - } - - static const struct seq_operations obd_device_list_sops = { -diff --git a/lustre/obdclass/lprocfs_jobstats.c b/lustre/obdclass/lprocfs_jobstats.c -index c0ea8f3..af6cc5f 100644 ---- a/lustre/obdclass/lprocfs_jobstats.c -+++ b/lustre/obdclass/lprocfs_jobstats.c -@@ -636,7 +636,8 @@ int lprocfs_job_interval_seq_show(struct seq_file *m, void *data) - return -ENODEV; - - stats = &obd->u.obt.obt_jobstats; -- return seq_printf(m, "%d\n", stats->ojs_cleanup_interval); -+ seq_printf(m, "%d\n", stats->ojs_cleanup_interval); -+ return 0; - } - EXPORT_SYMBOL(lprocfs_job_interval_seq_show); - -diff --git a/lustre/obdclass/lprocfs_status.c b/lustre/obdclass/lprocfs_status.c -index 917bd6b..0cae0eb 100644 ---- a/lustre/obdclass/lprocfs_status.c -+++ b/lustre/obdclass/lprocfs_status.c -@@ -292,7 +292,8 @@ EXPORT_SYMBOL(lprocfs_register); - /* Generic callbacks */ - int lprocfs_uint_seq_show(struct seq_file *m, void *data) - { -- return seq_printf(m, "%u\n", *(unsigned int *)data); -+ seq_printf(m, "%u\n", *(unsigned int *)data); -+ return 0; - } - EXPORT_SYMBOL(lprocfs_uint_seq_show); - -@@ -333,7 +334,8 @@ EXPORT_SYMBOL(lprocfs_uint_seq_write); - int lprocfs_u64_seq_show(struct seq_file *m, void *data) - { - LASSERT(data != NULL); -- return seq_printf(m, LPU64"\n", *(__u64 *)data); -+ seq_printf(m, LPU64"\n", *(__u64 *)data); -+ return 0; - } - EXPORT_SYMBOL(lprocfs_u64_seq_show); - -@@ -341,7 +343,8 @@ int lprocfs_atomic_seq_show(struct seq_file *m, void *data) - { - atomic_t *atom = data; - LASSERT(atom != NULL); -- return seq_printf(m, "%d\n", atomic_read(atom)); -+ seq_printf(m, "%d\n", atomic_read(atom)); -+ return 0; - } - EXPORT_SYMBOL(lprocfs_atomic_seq_show); - -@@ -370,7 +373,8 @@ int lprocfs_uuid_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = data; - - LASSERT(obd != NULL); -- return seq_printf(m, "%s\n", obd->obd_uuid.uuid); -+ seq_printf(m, "%s\n", obd->obd_uuid.uuid); -+ return 0; - } - EXPORT_SYMBOL(lprocfs_uuid_seq_show); - -@@ -379,7 +383,8 @@ int lprocfs_name_seq_show(struct seq_file *m, void *data) - struct obd_device *dev = data; - - LASSERT(dev != NULL); -- return seq_printf(m, "%s\n", dev->obd_name); -+ seq_printf(m, "%s\n", dev->obd_name); -+ return 0; - } - EXPORT_SYMBOL(lprocfs_name_seq_show); - -@@ -391,7 +396,7 @@ int lprocfs_blksize_seq_show(struct seq_file *m, void *data) - cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS), - OBD_STATFS_NODELAY); - if (!rc) -- rc = seq_printf(m, "%u\n", osfs.os_bsize); -+ seq_printf(m, "%u\n", osfs.os_bsize); - return rc; - } - EXPORT_SYMBOL(lprocfs_blksize_seq_show); -@@ -410,7 +415,7 @@ int lprocfs_kbytestotal_seq_show(struct seq_file *m, void *data) - while (blk_size >>= 1) - result <<= 1; - -- rc = seq_printf(m, LPU64"\n", result); -+ seq_printf(m, LPU64"\n", result); - } - return rc; - } -@@ -430,7 +435,7 @@ int lprocfs_kbytesfree_seq_show(struct seq_file *m, void *data) - while (blk_size >>= 1) - result <<= 1; - -- rc = seq_printf(m, LPU64"\n", result); -+ seq_printf(m, LPU64"\n", result); - } - return rc; - } -@@ -450,7 +455,7 @@ int lprocfs_kbytesavail_seq_show(struct seq_file *m, void *data) - while (blk_size >>= 1) - result <<= 1; - -- rc = seq_printf(m, LPU64"\n", result); -+ seq_printf(m, LPU64"\n", result); - } - return rc; - } -@@ -464,7 +469,7 @@ int lprocfs_filestotal_seq_show(struct seq_file *m, void *data) - cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS), - OBD_STATFS_NODELAY); - if (!rc) -- rc = seq_printf(m, LPU64"\n", osfs.os_files); -+ seq_printf(m, LPU64"\n", osfs.os_files); - return rc; - } - EXPORT_SYMBOL(lprocfs_filestotal_seq_show); -@@ -477,7 +482,7 @@ int lprocfs_filesfree_seq_show(struct seq_file *m, void *data) - cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS), - OBD_STATFS_NODELAY); - if (!rc) -- rc = seq_printf(m, LPU64"\n", osfs.os_ffree); -+ seq_printf(m, LPU64"\n", osfs.os_ffree); - return rc; - } - EXPORT_SYMBOL(lprocfs_filesfree_seq_show); -@@ -493,8 +498,8 @@ int lprocfs_server_uuid_seq_show(struct seq_file *m, void *data) - LPROCFS_CLIMP_CHECK(obd); - imp = obd->u.cli.cl_import; - imp_state_name = ptlrpc_import_state_name(imp->imp_state); -- rc = seq_printf(m, "%s\t%s%s\n", obd2cli_tgt(obd), imp_state_name, -- imp->imp_deactive ? "\tDEACTIVATED" : ""); -+ seq_printf(m, "%s\t%s%s\n", obd2cli_tgt(obd), imp_state_name, -+ imp->imp_deactive ? "\tDEACTIVATED" : ""); - - LPROCFS_CLIMP_EXIT(obd); - return rc; -@@ -512,9 +517,9 @@ int lprocfs_conn_uuid_seq_show(struct seq_file *m, void *data) - LPROCFS_CLIMP_CHECK(obd); - conn = obd->u.cli.cl_import->imp_connection; - if (conn && obd->u.cli.cl_import) -- rc = seq_printf(m, "%s\n", conn->c_remote_uuid.uuid); -+ seq_printf(m, "%s\n", conn->c_remote_uuid.uuid); - else -- rc = seq_printf(m, "%s\n", ""); -+ seq_printf(m, "%s\n", ""); - - LPROCFS_CLIMP_EXIT(obd); - return rc; -@@ -705,16 +710,16 @@ static void obd_connect_data_seqprint(struct seq_file *m, - flags = ocd->ocd_connect_flags; - - seq_printf(m, " connect_data:\n" -- " flags: "LPX64"\n" -- " instance: %u\n", -- ocd->ocd_connect_flags, -- ocd->ocd_instance); -+ " flags: "LPX64"\n" -+ " instance: %u\n", -+ ocd->ocd_connect_flags, -+ ocd->ocd_instance); - if (flags & OBD_CONNECT_VERSION) - seq_printf(m, " target_version: %u.%u.%u.%u\n", -- OBD_OCD_VERSION_MAJOR(ocd->ocd_version), -- OBD_OCD_VERSION_MINOR(ocd->ocd_version), -- OBD_OCD_VERSION_PATCH(ocd->ocd_version), -- OBD_OCD_VERSION_FIX(ocd->ocd_version)); -+ OBD_OCD_VERSION_MAJOR(ocd->ocd_version), -+ OBD_OCD_VERSION_MINOR(ocd->ocd_version), -+ OBD_OCD_VERSION_PATCH(ocd->ocd_version), -+ OBD_OCD_VERSION_FIX(ocd->ocd_version)); - if (flags & OBD_CONNECT_MDS) - seq_printf(m, " mdt_index: %d\n", ocd->ocd_group); - if (flags & OBD_CONNECT_GRANT) -@@ -725,28 +730,30 @@ static void obd_connect_data_seqprint(struct seq_file *m, - seq_printf(m, " max_brw_size: %d\n", ocd->ocd_brw_size); - if (flags & OBD_CONNECT_IBITS) - seq_printf(m, " ibits_known: "LPX64"\n", -- ocd->ocd_ibits_known); -+ ocd->ocd_ibits_known); - if (flags & OBD_CONNECT_GRANT_PARAM) - seq_printf(m, " grant_block_size: %d\n" -- " grant_inode_size: %d\n" -- " grant_extent_overhead: %d\n", -- ocd->ocd_blocksize, -- ocd->ocd_inodespace, -- ocd->ocd_grant_extent); -+ " grant_inode_size: %d\n" -+ " grant_max_extent_size: %d\n" -+ " grant_extent_tax: %d\n", -+ 1 << ocd->ocd_grant_blkbits, -+ 1 << ocd->ocd_grant_inobits, -+ ocd->ocd_grant_max_blks << ocd->ocd_grant_blkbits, -+ ocd->ocd_grant_tax_kb << 10); - if (flags & OBD_CONNECT_TRANSNO) - seq_printf(m, " first_transno: "LPX64"\n", -- ocd->ocd_transno); -+ ocd->ocd_transno); - if (flags & OBD_CONNECT_CKSUM) - seq_printf(m, " cksum_types: %#x\n", -- ocd->ocd_cksum_types); -+ ocd->ocd_cksum_types); - if (flags & OBD_CONNECT_MAX_EASIZE) - seq_printf(m, " max_easize: %d\n", ocd->ocd_max_easize); - if (flags & OBD_CONNECT_MAXBYTES) - seq_printf(m, " max_object_bytes: "LPU64"\n", -- ocd->ocd_maxbytes); -+ ocd->ocd_maxbytes); - if (flags & OBD_CONNECT_MULTIMODRPCS) - seq_printf(m, " max_mod_rpcs: %hu\n", -- ocd->ocd_maxmodrpcs); -+ ocd->ocd_maxmodrpcs); - } - - int lprocfs_import_seq_show(struct seq_file *m, void *data) -@@ -768,23 +775,23 @@ int lprocfs_import_seq_show(struct seq_file *m, void *data) - ocd = &imp->imp_connect_data; - - seq_printf(m, "import:\n" -- " name: %s\n" -- " target: %s\n" -- " state: %s\n" -- " connect_flags: [ ", -- obd->obd_name, -- obd2cli_tgt(obd), -- ptlrpc_import_state_name(imp->imp_state)); -+ " name: %s\n" -+ " target: %s\n" -+ " state: %s\n" -+ " connect_flags: [ ", -+ obd->obd_name, -+ obd2cli_tgt(obd), -+ ptlrpc_import_state_name(imp->imp_state)); - obd_connect_seq_flags2str(m, imp->imp_connect_data.ocd_connect_flags, -- ", "); -+ ", "); - seq_printf(m, " ]\n"); - obd_connect_data_seqprint(m, ocd); - seq_printf(m, " import_flags: [ "); - obd_import_flags2str(imp, m); - - seq_printf(m, " ]\n" -- " connection:\n" -- " failover_nids: [ "); -+ " connection:\n" -+ " failover_nids: [ "); - spin_lock(&imp->imp_lock); - j = 0; - list_for_each_entry(conn, &imp->imp_conn_list, oic_item) { -@@ -799,14 +806,14 @@ int lprocfs_import_seq_show(struct seq_file *m, void *data) - else - strncpy(nidstr, "", sizeof(nidstr)); - seq_printf(m, " ]\n" -- " current_connection: %s\n" -- " connection_attempts: %u\n" -- " generation: %u\n" -- " in-progress_invalidations: %u\n", -- nidstr, -- imp->imp_conn_cnt, -- imp->imp_generation, -- atomic_read(&imp->imp_inval_count)); -+ " current_connection: %s\n" -+ " connection_attempts: %u\n" -+ " generation: %u\n" -+ " in-progress_invalidations: %u\n", -+ nidstr, -+ imp->imp_conn_cnt, -+ imp->imp_generation, -+ atomic_read(&imp->imp_inval_count)); - spin_unlock(&imp->imp_lock); - - if (obd->obd_svc_stats == NULL) -@@ -822,14 +829,14 @@ int lprocfs_import_seq_show(struct seq_file *m, void *data) - } else - ret.lc_sum = 0; - seq_printf(m, " rpcs:\n" -- " inflight: %u\n" -- " unregistering: %u\n" -- " timeouts: %u\n" -- " avg_waittime: "LPU64" %s\n", -- atomic_read(&imp->imp_inflight), -- atomic_read(&imp->imp_unregistering), -- atomic_read(&imp->imp_timeouts), -- ret.lc_sum, header->lc_units); -+ " inflight: %u\n" -+ " unregistering: %u\n" -+ " timeouts: %u\n" -+ " avg_waittime: "LPU64" %s\n", -+ atomic_read(&imp->imp_inflight), -+ atomic_read(&imp->imp_unregistering), -+ atomic_read(&imp->imp_timeouts), -+ ret.lc_sum, header->lc_units); - - k = 0; - for(j = 0; j < IMP_AT_MAX_PORTALS; j++) { -@@ -839,18 +846,18 @@ int lprocfs_import_seq_show(struct seq_file *m, void *data) - at_get(&imp->imp_at.iat_service_estimate[j])); - } - seq_printf(m, " service_estimates:\n" -- " services: %u sec\n" -- " network: %u sec\n", -- k, -- at_get(&imp->imp_at.iat_net_latency)); -+ " services: %u sec\n" -+ " network: %u sec\n", -+ k, -+ at_get(&imp->imp_at.iat_net_latency)); - - seq_printf(m, " transactions:\n" -- " last_replay: "LPU64"\n" -- " peer_committed: "LPU64"\n" -- " last_checked: "LPU64"\n", -- imp->imp_last_replay_transno, -- imp->imp_peer_committed_transno, -- imp->imp_last_transno_checked); -+ " last_replay: "LPU64"\n" -+ " peer_committed: "LPU64"\n" -+ " last_checked: "LPU64"\n", -+ imp->imp_last_replay_transno, -+ imp->imp_peer_committed_transno, -+ imp->imp_last_transno_checked); - - /* avg data rates */ - for (rw = 0; rw <= 1; rw++) { -@@ -863,9 +870,9 @@ int lprocfs_import_seq_show(struct seq_file *m, void *data) - do_div(sum, ret.lc_count); - ret.lc_sum = sum; - seq_printf(m, " %s_data_averages:\n" -- " bytes_per_rpc: "LPU64"\n", -- rw ? "write" : "read", -- ret.lc_sum); -+ " bytes_per_rpc: "LPU64"\n", -+ rw ? "write" : "read", -+ ret.lc_sum); - } - k = (int)ret.lc_sum; - j = opcode_offset(OST_READ + rw) + EXTRA_MAX_OPCODES; -@@ -877,11 +884,11 @@ int lprocfs_import_seq_show(struct seq_file *m, void *data) - do_div(sum, ret.lc_count); - ret.lc_sum = sum; - seq_printf(m, " %s_per_rpc: "LPU64"\n", -- header->lc_units, ret.lc_sum); -+ header->lc_units, ret.lc_sum); - j = (int)ret.lc_sum; - if (j > 0) - seq_printf(m, " MB_per_sec: %u.%.02u\n", -- k / j, (100 * k / j) % 100); -+ k / j, (100 * k / j) % 100); - } - } - -@@ -1223,8 +1230,8 @@ static int lprocfs_stats_seq_show(struct seq_file *p, void *v) - struct timeval now; - - do_gettimeofday(&now); -- rc = seq_printf(p, "%-25s %lu.%lu secs.usecs\n", -- "snapshot_time", now.tv_sec, now.tv_usec); -+ seq_printf(p, "%-25s %lu.%lu secs.usecs\n", -+ "snapshot_time", now.tv_sec, now.tv_usec); - if (rc < 0) - return rc; - } -@@ -1235,22 +1242,22 @@ static int lprocfs_stats_seq_show(struct seq_file *p, void *v) - if (ctr.lc_count == 0) - goto out; - -- rc = seq_printf(p, "%-25s "LPD64" samples [%s]", hdr->lc_name, -- ctr.lc_count, hdr->lc_units); -+ seq_printf(p, "%-25s "LPD64" samples [%s]", hdr->lc_name, -+ ctr.lc_count, hdr->lc_units); - if (rc < 0) - goto out; - - if ((hdr->lc_config & LPROCFS_CNTR_AVGMINMAX) && ctr.lc_count > 0) { -- rc = seq_printf(p, " "LPD64" "LPD64" "LPD64, -- ctr.lc_min, ctr.lc_max, ctr.lc_sum); -+ seq_printf(p, " "LPD64" "LPD64" "LPD64, -+ ctr.lc_min, ctr.lc_max, ctr.lc_sum); - if (rc < 0) - goto out; - if (hdr->lc_config & LPROCFS_CNTR_STDDEV) -- rc = seq_printf(p, " "LPD64, ctr.lc_sumsquare); -+ seq_printf(p, " "LPD64, ctr.lc_sumsquare); - if (rc < 0) - goto out; - } -- rc = seq_printf(p, "\n"); -+ seq_putc(p, '\n'); - out: - return (rc < 0) ? rc : 0; - } -@@ -1849,12 +1856,11 @@ int lprocfs_obd_max_pages_per_rpc_seq_show(struct seq_file *m, void *data) - { - struct obd_device *dev = data; - struct client_obd *cli = &dev->u.cli; -- int rc; - - spin_lock(&cli->cl_loi_list_lock); -- rc = seq_printf(m, "%d\n", cli->cl_max_pages_per_rpc); -+ seq_printf(m, "%d\n", cli->cl_max_pages_per_rpc); - spin_unlock(&cli->cl_loi_list_lock); -- return rc; -+ return 0; - } - EXPORT_SYMBOL(lprocfs_obd_max_pages_per_rpc_seq_show); - -diff --git a/lustre/obdclass/lprocfs_status_server.c b/lustre/obdclass/lprocfs_status_server.c -index 148f65a..6bb6c27 100644 ---- a/lustre/obdclass/lprocfs_status_server.c -+++ b/lustre/obdclass/lprocfs_status_server.c -@@ -109,7 +109,8 @@ int lprocfs_num_exports_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = data; - - LASSERT(obd != NULL); -- return seq_printf(m, "%u\n", obd->obd_num_exports); -+ seq_printf(m, "%u\n", obd->obd_num_exports); -+ return 0; - } - EXPORT_SYMBOL(lprocfs_num_exports_seq_show); - -@@ -237,9 +238,9 @@ int lprocfs_exp_print_replydata_seq(struct cfs_hash *hs, struct cfs_hash_bd *bd, - struct tg_export_data *ted = &exp->exp_target_data; - - seq_printf(m, "reply_cnt: %d\n" -- "reply_max: %d\n" -- "reply_released_by_xid: %d\n" -- "reply_released_by_tag: %d\n\n", -+ "reply_max: %d\n" -+ "reply_released_by_xid: %d\n" -+ "reply_released_by_tag: %d\n\n", - ted->ted_reply_cnt, - ted->ted_reply_max, - ted->ted_release_xid, -@@ -260,8 +261,8 @@ LPROC_SEQ_FOPS_RO(lprocfs_exp_replydata); - - int lprocfs_nid_stats_clear_seq_show(struct seq_file *m, void *data) - { -- return seq_printf(m, "%s\n", "Write into this file to clear all nid " -- "stats and stale nid entries"); -+ seq_puts(m, "Write into this file to clear all nid stats and stale nid entries\n"); -+ return 0; - } - EXPORT_SYMBOL(lprocfs_nid_stats_clear_seq_show); - -@@ -548,16 +549,15 @@ EXPORT_SYMBOL(lprocfs_free_obd_stats); - int lprocfs_hash_seq_show(struct seq_file *m, void *data) - { - struct obd_device *obd = m->private; -- int c = 0; - - if (obd == NULL) - return 0; - -- c += cfs_hash_debug_header(m); -- c += cfs_hash_debug_str(obd->obd_uuid_hash, m); -- c += cfs_hash_debug_str(obd->obd_nid_hash, m); -- c += cfs_hash_debug_str(obd->obd_nid_stats_hash, m); -- return c; -+ cfs_hash_debug_header(m); -+ cfs_hash_debug_str(obd->obd_uuid_hash, m); -+ cfs_hash_debug_str(obd->obd_nid_hash, m); -+ cfs_hash_debug_str(obd->obd_nid_stats_hash, m); -+ return 0; - } - EXPORT_SYMBOL(lprocfs_hash_seq_show); - -@@ -631,7 +631,8 @@ int lprocfs_ir_factor_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - - LASSERT(obd != NULL); -- return seq_printf(m, "%d\n", obd->obd_recovery_ir_factor); -+ seq_printf(m, "%d\n", obd->obd_recovery_ir_factor); -+ return 0; - } - EXPORT_SYMBOL(lprocfs_ir_factor_seq_show); - -@@ -661,7 +662,8 @@ int lprocfs_recovery_time_soft_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - - LASSERT(obd != NULL); -- return seq_printf(m, "%d\n", obd->obd_recovery_timeout); -+ seq_printf(m, "%d\n", obd->obd_recovery_timeout); -+ return 0; - } - EXPORT_SYMBOL(lprocfs_recovery_time_soft_seq_show); - -@@ -689,7 +691,8 @@ int lprocfs_recovery_time_hard_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - - LASSERT(obd != NULL); -- return seq_printf(m, "%u\n", obd->obd_recovery_time_hard); -+ seq_printf(m, "%u\n", obd->obd_recovery_time_hard); -+ return 0; - } - EXPORT_SYMBOL(lprocfs_recovery_time_hard_seq_show); - -@@ -719,7 +722,8 @@ int lprocfs_target_instance_seq_show(struct seq_file *m, void *data) - - LASSERT(obd != NULL); - LASSERT(target->obt_magic == OBT_MAGIC); -- return seq_printf(m, "%u\n", obd->u.obt.obt_instance); -+ seq_printf(m, "%u\n", obd->u.obt.obt_instance); -+ return 0; - } - EXPORT_SYMBOL(lprocfs_target_instance_seq_show); - -diff --git a/lustre/obdclass/lu_object.c b/lustre/obdclass/lu_object.c -index c478d51..7709a8d 100644 ---- a/lustre/obdclass/lu_object.c -+++ b/lustre/obdclass/lu_object.c -@@ -2223,19 +2223,20 @@ int lu_site_stats_seq_print(const struct lu_site *s, struct seq_file *m) - memset(&stats, 0, sizeof(stats)); - lu_site_stats_get(s->ls_obj_hash, &stats, 1); - -- return seq_printf(m, "%d/%d %d/%d %d %d %d %d %d %d %d %d\n", -- stats.lss_busy, -- stats.lss_total, -- stats.lss_populated, -- CFS_HASH_NHLIST(s->ls_obj_hash), -- stats.lss_max_search, -- ls_stats_read(s->ls_stats, LU_SS_CREATED), -- ls_stats_read(s->ls_stats, LU_SS_CACHE_HIT), -- ls_stats_read(s->ls_stats, LU_SS_CACHE_MISS), -- ls_stats_read(s->ls_stats, LU_SS_CACHE_RACE), -- ls_stats_read(s->ls_stats, LU_SS_CACHE_DEATH_RACE), -- ls_stats_read(s->ls_stats, LU_SS_LRU_PURGED), -- ls_stats_read(s->ls_stats, LU_SS_LRU_LEN)); -+ seq_printf(m, "%d/%d %d/%d %d %d %d %d %d %d %d %d\n", -+ stats.lss_busy, -+ stats.lss_total, -+ stats.lss_populated, -+ CFS_HASH_NHLIST(s->ls_obj_hash), -+ stats.lss_max_search, -+ ls_stats_read(s->ls_stats, LU_SS_CREATED), -+ ls_stats_read(s->ls_stats, LU_SS_CACHE_HIT), -+ ls_stats_read(s->ls_stats, LU_SS_CACHE_MISS), -+ ls_stats_read(s->ls_stats, LU_SS_CACHE_RACE), -+ ls_stats_read(s->ls_stats, LU_SS_CACHE_DEATH_RACE), -+ ls_stats_read(s->ls_stats, LU_SS_LRU_PURGED), -+ ls_stats_read(s->ls_stats, LU_SS_LRU_LEN)); -+ return 0; - } - EXPORT_SYMBOL(lu_site_stats_seq_print); - -diff --git a/lustre/ofd/lproc_ofd.c b/lustre/ofd/lproc_ofd.c -index 65b57f3..29350da 100644 ---- a/lustre/ofd/lproc_ofd.c -+++ b/lustre/ofd/lproc_ofd.c -@@ -64,7 +64,8 @@ static int ofd_seqs_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); - -- return seq_printf(m, "%u\n", ofd->ofd_seq_count); -+ seq_printf(m, "%u\n", ofd->ofd_seq_count); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ofd_seqs); - -@@ -84,7 +85,8 @@ static int ofd_tot_dirty_seq_show(struct seq_file *m, void *data) - - LASSERT(obd != NULL); - ofd = ofd_dev(obd->obd_lu_dev); -- return seq_printf(m, LPU64"\n", ofd->ofd_tot_dirty); -+ seq_printf(m, LPU64"\n", ofd->ofd_tot_dirty); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ofd_tot_dirty); - -@@ -104,7 +106,8 @@ static int ofd_tot_granted_seq_show(struct seq_file *m, void *data) - - LASSERT(obd != NULL); - ofd = ofd_dev(obd->obd_lu_dev); -- return seq_printf(m, LPU64"\n", ofd->ofd_tot_granted); -+ seq_printf(m, LPU64"\n", ofd->ofd_tot_granted); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ofd_tot_granted); - -@@ -124,7 +127,8 @@ static int ofd_tot_pending_seq_show(struct seq_file *m, void *data) - - LASSERT(obd != NULL); - ofd = ofd_dev(obd->obd_lu_dev); -- return seq_printf(m, LPU64"\n", ofd->ofd_tot_pending); -+ seq_printf(m, LPU64"\n", ofd->ofd_tot_pending); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ofd_tot_pending); - -@@ -142,8 +146,9 @@ static int ofd_grant_precreate_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - - LASSERT(obd != NULL); -- return seq_printf(m, "%ld\n", -- obd->obd_self_export->exp_filter_data.fed_grant); -+ seq_printf(m, "%ld\n", -+ obd->obd_self_export->exp_filter_data.fed_grant); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ofd_grant_precreate); - -@@ -225,7 +230,8 @@ static int ofd_precreate_batch_seq_show(struct seq_file *m, void *data) - - LASSERT(obd != NULL); - ofd = ofd_dev(obd->obd_lu_dev); -- return seq_printf(m, "%d\n", ofd->ofd_precreate_batch); -+ seq_printf(m, "%d\n", ofd->ofd_precreate_batch); -+ return 0; - } - - /** -@@ -277,7 +283,6 @@ static int ofd_last_id_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct ofd_device *ofd; - struct ofd_seq *oseq = NULL; -- int retval = 0, rc; - - if (obd == NULL) - return 0; -@@ -292,15 +297,10 @@ static int ofd_last_id_seq_show(struct seq_file *m, void *data) - fid_idif_seq(ostid_id(&oseq->os_oi), - ofd->ofd_lut.lut_lsd.lsd_osd_index) : - ostid_seq(&oseq->os_oi); -- rc = seq_printf(m, DOSTID"\n", seq, ostid_id(&oseq->os_oi)); -- if (rc < 0) { -- retval = rc; -- break; -- } -- retval += rc; -+ seq_printf(m, DOSTID"\n", seq, ostid_id(&oseq->os_oi)); - } - read_unlock(&ofd->ofd_seq_list_lock); -- return retval; -+ return 0; - } - LPROC_SEQ_FOPS_RO(ofd_last_id); - -@@ -318,7 +318,8 @@ static int ofd_fmd_max_num_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); - -- return seq_printf(m, "%u\n", ofd->ofd_fmd_max_num); -+ seq_printf(m, "%u\n", ofd->ofd_fmd_max_num); -+ return 0; - } - - /** -@@ -373,8 +374,9 @@ static int ofd_fmd_max_age_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); - -- return seq_printf(m, "%ld\n", jiffies_to_msecs(ofd->ofd_fmd_max_age) / -- MSEC_PER_SEC); -+ seq_printf(m, "%ld\n", jiffies_to_msecs(ofd->ofd_fmd_max_age) / -+ MSEC_PER_SEC); -+ return 0; - } - - /** -@@ -433,7 +435,8 @@ static int ofd_degraded_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); - -- return seq_printf(m, "%u\n", ofd->ofd_raid_degraded); -+ seq_printf(m, "%u\n", ofd->ofd_raid_degraded); -+ return 0; - } - - /** -@@ -491,7 +494,8 @@ static int ofd_fstype_seq_show(struct seq_file *m, void *data) - LASSERT(ofd->ofd_osd); - d = &ofd->ofd_osd->dd_lu_dev; - LASSERT(d->ld_type); -- return seq_printf(m, "%s\n", d->ld_type->ldt_name); -+ seq_printf(m, "%s\n", d->ld_type->ldt_name); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ofd_fstype); - -@@ -517,7 +521,8 @@ static int ofd_syncjournal_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); - -- return seq_printf(m, "%u\n", ofd->ofd_syncjournal); -+ seq_printf(m, "%u\n", ofd->ofd_syncjournal); -+ return 0; - } - - /** -@@ -579,8 +584,9 @@ static int ofd_sync_lock_cancel_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct lu_target *tgt = obd->u.obt.obt_lut; - -- return seq_printf(m, "%s\n", -- sync_on_cancel_states[tgt->lut_sync_lock_cancel]); -+ seq_printf(m, "%s\n", -+ sync_on_cancel_states[tgt->lut_sync_lock_cancel]); -+ return 0; - } - - /** -@@ -673,7 +679,8 @@ static int ofd_grant_compat_disable_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); - -- return seq_printf(m, "%u\n", ofd->ofd_grant_compat_disable); -+ seq_printf(m, "%u\n", ofd->ofd_grant_compat_disable); -+ return 0; - } - - /** -@@ -851,11 +858,11 @@ static int ofd_lfsck_verify_pfid_seq_show(struct seq_file *m, void *data) - struct obd_device *obd = m->private; - struct ofd_device *ofd = ofd_dev(obd->obd_lu_dev); - -- return seq_printf(m, -- "switch: %s\ndetected: "LPU64"\nrepaired: "LPU64"\n", -- ofd->ofd_lfsck_verify_pfid ? "on" : "off", -- ofd->ofd_inconsistency_self_detected, -- ofd->ofd_inconsistency_self_repaired); -+ seq_printf(m, "switch: %s\ndetected: "LPU64"\nrepaired: "LPU64"\n", -+ ofd->ofd_lfsck_verify_pfid ? "on" : "off", -+ ofd->ofd_inconsistency_self_detected, -+ ofd->ofd_inconsistency_self_repaired); -+ return 0; - } - - /** -diff --git a/lustre/osc/lproc_osc.c b/lustre/osc/lproc_osc.c -index 983442f..3bd44a6 100644 ---- a/lustre/osc/lproc_osc.c -+++ b/lustre/osc/lproc_osc.c -@@ -47,12 +47,11 @@ - static int osc_active_seq_show(struct seq_file *m, void *v) - { - struct obd_device *dev = m->private; -- int rc; - - LPROCFS_CLIMP_CHECK(dev); -- rc = seq_printf(m, "%d\n", !dev->u.cli.cl_import->imp_deactive); -+ seq_printf(m, "%d\n", !dev->u.cli.cl_import->imp_deactive); - LPROCFS_CLIMP_EXIT(dev); -- return rc; -+ return 0; - } - - static ssize_t osc_active_seq_write(struct file *file, -@@ -82,12 +81,11 @@ static int osc_max_rpcs_in_flight_seq_show(struct seq_file *m, void *v) - { - struct obd_device *dev = m->private; - struct client_obd *cli = &dev->u.cli; -- int rc; - - spin_lock(&cli->cl_loi_list_lock); -- rc = seq_printf(m, "%u\n", cli->cl_max_rpcs_in_flight); -+ seq_printf(m, "%u\n", cli->cl_max_rpcs_in_flight); - spin_unlock(&cli->cl_loi_list_lock); -- return rc; -+ return 0; - } - - static ssize_t osc_max_rpcs_in_flight_seq_write(struct file *file, -@@ -179,18 +177,16 @@ static int osc_cached_mb_seq_show(struct seq_file *m, void *v) - struct obd_device *dev = m->private; - struct client_obd *cli = &dev->u.cli; - int shift = 20 - PAGE_CACHE_SHIFT; -- int rc; - -- rc = seq_printf(m, -- "used_mb: %ld\n" -- "busy_cnt: %ld\n" -- "reclaim: "LPU64"\n", -- (atomic_long_read(&cli->cl_lru_in_list) + -- atomic_long_read(&cli->cl_lru_busy)) >> shift, -- atomic_long_read(&cli->cl_lru_busy), -- cli->cl_lru_reclaim); -+ seq_printf(m, "used_mb: %ld\n" -+ "busy_cnt: %ld\n" -+ "reclaim: "LPU64"\n", -+ (atomic_long_read(&cli->cl_lru_in_list) + -+ atomic_long_read(&cli->cl_lru_busy)) >> shift, -+ atomic_long_read(&cli->cl_lru_busy), -+ cli->cl_lru_reclaim); - -- return rc; -+ return 0; - } - - /* shrink the number of caching pages to a specific number */ -@@ -248,12 +244,11 @@ static int osc_cur_dirty_bytes_seq_show(struct seq_file *m, void *v) - { - struct obd_device *dev = m->private; - struct client_obd *cli = &dev->u.cli; -- int rc; - - spin_lock(&cli->cl_loi_list_lock); -- rc = seq_printf(m, "%lu\n", cli->cl_dirty_pages << PAGE_CACHE_SHIFT); -+ seq_printf(m, "%lu\n", cli->cl_dirty_pages << PAGE_CACHE_SHIFT); - spin_unlock(&cli->cl_loi_list_lock); -- return rc; -+ return 0; - } - LPROC_SEQ_FOPS_RO(osc_cur_dirty_bytes); - -@@ -261,12 +256,11 @@ static int osc_cur_grant_bytes_seq_show(struct seq_file *m, void *v) - { - struct obd_device *dev = m->private; - struct client_obd *cli = &dev->u.cli; -- int rc; - - spin_lock(&cli->cl_loi_list_lock); -- rc = seq_printf(m, "%lu\n", cli->cl_avail_grant); -+ seq_printf(m, "%lu\n", cli->cl_avail_grant); - spin_unlock(&cli->cl_loi_list_lock); -- return rc; -+ return 0; - } - - static ssize_t osc_cur_grant_bytes_seq_write(struct file *file, -@@ -308,23 +302,35 @@ static int osc_cur_lost_grant_bytes_seq_show(struct seq_file *m, void *v) - { - struct obd_device *dev = m->private; - struct client_obd *cli = &dev->u.cli; -- int rc; - - spin_lock(&cli->cl_loi_list_lock); -- rc = seq_printf(m, "%lu\n", cli->cl_lost_grant); -+ seq_printf(m, "%lu\n", cli->cl_lost_grant); - spin_unlock(&cli->cl_loi_list_lock); -- return rc; -+ return 0; - } - LPROC_SEQ_FOPS_RO(osc_cur_lost_grant_bytes); - -+static int osc_cur_dirty_grant_bytes_seq_show(struct seq_file *m, void *v) -+{ -+ struct obd_device *dev = m->private; -+ struct client_obd *cli = &dev->u.cli; -+ -+ spin_lock(&cli->cl_loi_list_lock); -+ seq_printf(m, "%lu\n", cli->cl_dirty_grant); -+ spin_unlock(&cli->cl_loi_list_lock); -+ return 0; -+} -+LPROC_SEQ_FOPS_RO(osc_cur_dirty_grant_bytes); -+ - static int osc_grant_shrink_interval_seq_show(struct seq_file *m, void *v) - { - struct obd_device *obd = m->private; - - if (obd == NULL) - return 0; -- return seq_printf(m, "%d\n", -- obd->u.cli.cl_grant_shrink_interval); -+ seq_printf(m, "%d\n", -+ obd->u.cli.cl_grant_shrink_interval); -+ return 0; - } - - static ssize_t osc_grant_shrink_interval_seq_write(struct file *file, -@@ -357,8 +363,8 @@ static int osc_checksum_seq_show(struct seq_file *m, void *v) - if (obd == NULL) - return 0; - -- return seq_printf(m, "%d\n", -- obd->u.cli.cl_checksum ? 1 : 0); -+ seq_printf(m, "%d\n", obd->u.cli.cl_checksum ? 1 : 0); -+ return 0; - } - - static ssize_t osc_checksum_seq_write(struct file *file, -@@ -439,7 +445,8 @@ static int osc_resend_count_seq_show(struct seq_file *m, void *v) - { - struct obd_device *obd = m->private; - -- return seq_printf(m, "%u\n", atomic_read(&obd->u.cli.cl_resends)); -+ seq_printf(m, "%u\n", atomic_read(&obd->u.cli.cl_resends)); -+ return 0; - } - - static ssize_t osc_resend_count_seq_write(struct file *file, -@@ -467,7 +474,8 @@ static int osc_contention_seconds_seq_show(struct seq_file *m, void *v) - struct obd_device *obd = m->private; - struct osc_device *od = obd2osc_dev(obd); - -- return seq_printf(m, "%u\n", od->od_contention_time); -+ seq_printf(m, "%u\n", od->od_contention_time); -+ return 0; - } - - static ssize_t osc_contention_seconds_seq_write(struct file *file, -@@ -486,7 +494,8 @@ static int osc_lockless_truncate_seq_show(struct seq_file *m, void *v) - struct obd_device *obd = m->private; - struct osc_device *od = obd2osc_dev(obd); - -- return seq_printf(m, "%u\n", od->od_lockless_truncate); -+ seq_printf(m, "%u\n", od->od_lockless_truncate); -+ return 0; - } - - static ssize_t osc_lockless_truncate_seq_write(struct file *file, -@@ -504,8 +513,9 @@ LPROC_SEQ_FOPS(osc_lockless_truncate); - static int osc_destroys_in_flight_seq_show(struct seq_file *m, void *v) - { - struct obd_device *obd = m->private; -- return seq_printf(m, "%u\n", -- atomic_read(&obd->u.cli.cl_destroy_in_flight)); -+ seq_printf(m, "%u\n", -+ atomic_read(&obd->u.cli.cl_destroy_in_flight)); -+ return 0; - } - LPROC_SEQ_FOPS_RO(osc_destroys_in_flight); - -@@ -562,9 +572,10 @@ static int osc_unstable_stats_seq_show(struct seq_file *m, void *v) - pages = atomic_long_read(&cli->cl_unstable_count); - mb = (pages * PAGE_CACHE_SIZE) >> 20; - -- return seq_printf(m, "unstable_pages: %20ld\n" -- "unstable_mb: %10d\n", -- pages, mb); -+ seq_printf(m, "unstable_pages: %20ld\n" -+ "unstable_mb: %10d\n", -+ pages, mb); -+ return 0; - } - LPROC_SEQ_FOPS_RO(osc_unstable_stats); - -@@ -716,11 +727,11 @@ static int osc_rpc_stats_seq_show(struct seq_file *seq, void *v) - unsigned long w = cli->cl_write_rpc_hist.oh_buckets[i]; - read_cum += r; - write_cum += w; -- seq_printf(seq, "%d:\t\t%10lu %3lu %3lu | %10lu %3lu %3lu\n", -- i, r, pct(r, read_tot), -- pct(read_cum, read_tot), w, -- pct(w, write_tot), -- pct(write_cum, write_tot)); -+ seq_printf(seq, "%d:\t\t%10lu %3lu %3lu | %10lu %3lu %3lu\n", -+ i, r, pct(r, read_tot), -+ pct(read_cum, read_tot), w, -+ pct(w, write_tot), -+ pct(write_cum, write_tot)); - if (read_cum == read_tot && write_cum == write_tot) - break; - } -diff --git a/lustre/osd-ldiskfs/osd_lproc.c b/lustre/osd-ldiskfs/osd_lproc.c -index d15b3bf..4812342 100644 ---- a/lustre/osd-ldiskfs/osd_lproc.c -+++ b/lustre/osd-ldiskfs/osd_lproc.c -@@ -243,7 +243,8 @@ static int ldiskfs_osd_fstype_seq_show(struct seq_file *m, void *data) - struct osd_device *osd = osd_dt_dev((struct dt_device *)m->private); - - LASSERT(osd != NULL); -- return seq_printf(m, "ldiskfs\n"); -+ seq_puts(m, "ldiskfs\n"); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ldiskfs_osd_fstype); - -@@ -255,7 +256,8 @@ static int ldiskfs_osd_mntdev_seq_show(struct seq_file *m, void *data) - if (unlikely(osd->od_mnt == NULL)) - return -EINPROGRESS; - -- return seq_printf(m, "%s\n", osd->od_mntdev); -+ seq_printf(m, "%s\n", osd->od_mntdev); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ldiskfs_osd_mntdev); - -@@ -267,7 +269,8 @@ static int ldiskfs_osd_cache_seq_show(struct seq_file *m, void *data) - if (unlikely(osd->od_mnt == NULL)) - return -EINPROGRESS; - -- return seq_printf(m, "%u\n", osd->od_read_cache); -+ seq_printf(m, "%u\n", osd->od_read_cache); -+ return 0; - } - - static ssize_t -@@ -300,7 +303,8 @@ static int ldiskfs_osd_wcache_seq_show(struct seq_file *m, void *data) - if (unlikely(osd->od_mnt == NULL)) - return -EINPROGRESS; - -- return seq_printf(m, "%u\n", osd->od_writethrough_cache); -+ seq_printf(m, "%u\n", osd->od_writethrough_cache); -+ return 0; - } - - static ssize_t -@@ -351,7 +355,8 @@ LPROC_SEQ_FOPS_WO_TYPE(ldiskfs, osd_force_sync); - - static int ldiskfs_osd_pdo_seq_show(struct seq_file *m, void *data) - { -- return seq_printf(m, "%s\n", ldiskfs_pdo ? "ON" : "OFF"); -+ seq_printf(m, "%s\n", ldiskfs_pdo ? "ON" : "OFF"); -+ return 0; - } - - static ssize_t -@@ -378,7 +383,8 @@ static int ldiskfs_osd_auto_scrub_seq_show(struct seq_file *m, void *data) - if (unlikely(dev->od_mnt == NULL)) - return -EINPROGRESS; - -- return seq_printf(m, "%d\n", !dev->od_noscrub); -+ seq_printf(m, "%d\n", !dev->od_noscrub); -+ return 0; - } - - static ssize_t -@@ -411,7 +417,8 @@ static int ldiskfs_osd_full_scrub_ratio_seq_show(struct seq_file *m, void *data) - if (unlikely(dev->od_mnt == NULL)) - return -EINPROGRESS; - -- return seq_printf(m, LPU64"\n", dev->od_full_scrub_ratio); -+ seq_printf(m, LPU64"\n", dev->od_full_scrub_ratio); -+ return 0; - } - - static ssize_t -@@ -448,8 +455,9 @@ static int ldiskfs_osd_full_scrub_threshold_rate_seq_show(struct seq_file *m, - if (unlikely(dev->od_mnt == NULL)) - return -EINPROGRESS; - -- return seq_printf(m, LPU64" (bad OI mappings/minute)\n", -- dev->od_full_scrub_threshold_rate); -+ seq_printf(m, LPU64" (bad OI mappings/minute)\n", -+ dev->od_full_scrub_threshold_rate); -+ return 0; - } - - static ssize_t -@@ -481,7 +489,8 @@ LPROC_SEQ_FOPS(ldiskfs_osd_full_scrub_threshold_rate); - static int - ldiskfs_osd_track_declares_assert_seq_show(struct seq_file *m, void *data) - { -- return seq_printf(m, "%d\n", ldiskfs_track_declares_assert); -+ seq_printf(m, "%d\n", ldiskfs_track_declares_assert); -+ return 0; - } - - static ssize_t -@@ -522,7 +531,8 @@ static int ldiskfs_osd_readcache_seq_show(struct seq_file *m, void *data) - if (unlikely(osd->od_mnt == NULL)) - return -EINPROGRESS; - -- return seq_printf(m, LPU64"\n", osd->od_readcache_max_filesize); -+ seq_printf(m, LPU64"\n", osd->od_readcache_max_filesize); -+ return 0; - } - - static ssize_t -@@ -558,7 +568,8 @@ static int ldiskfs_osd_index_in_idif_seq_show(struct seq_file *m, void *data) - if (unlikely(dev->od_mnt == NULL)) - return -EINPROGRESS; - -- return seq_printf(m, "%d\n", (int)(dev->od_index_in_idif)); -+ seq_printf(m, "%d\n", (int)(dev->od_index_in_idif)); -+ return 0; - } - - static ssize_t -diff --git a/lustre/osd-ldiskfs/osd_scrub.c b/lustre/osd-ldiskfs/osd_scrub.c -index 80f2794..5d12724 100644 ---- a/lustre/osd-ldiskfs/osd_scrub.c -+++ b/lustre/osd-ldiskfs/osd_scrub.c -@@ -2989,50 +2989,38 @@ static const char *scrub_param_names[] = { - NULL - }; - --static int scrub_bits_dump(struct seq_file *m, int bits, const char *names[], -- const char *prefix) -+static void scrub_bits_dump(struct seq_file *m, int bits, const char *names[], -+ const char *prefix) - { - int flag; -- int rc; - int i; - -- rc = seq_printf(m, "%s:%c", prefix, bits != 0 ? ' ' : '\n'); -- if (rc < 0) -- return rc; -+ seq_printf(m, "%s:%c", prefix, bits != 0 ? ' ' : '\n'); - - for (i = 0, flag = 1; bits != 0; i++, flag = 1 << i) { - if (flag & bits) { - bits &= ~flag; -- rc = seq_printf(m, "%s%c", names[i], -- bits != 0 ? ',' : '\n'); -- if (rc < 0) -- return rc; -+ seq_printf(m, "%s%c", names[i], -+ bits != 0 ? ',' : '\n'); - } - } -- return 0; - } - --static int scrub_time_dump(struct seq_file *m, __u64 time, const char *prefix) -+static void scrub_time_dump(struct seq_file *m, __u64 time, const char *prefix) - { -- int rc; -- - if (time != 0) -- rc = seq_printf(m, "%s: "LPU64" seconds\n", prefix, -- cfs_time_current_sec() - time); -+ seq_printf(m, "%s: "LPU64" seconds\n", prefix, -+ cfs_time_current_sec() - time); - else -- rc = seq_printf(m, "%s: N/A\n", prefix); -- return rc; -+ seq_printf(m, "%s: N/A\n", prefix); - } - --static int scrub_pos_dump(struct seq_file *m, __u64 pos, const char *prefix) -+static void scrub_pos_dump(struct seq_file *m, __u64 pos, const char *prefix) - { -- int rc; -- - if (pos != 0) -- rc = seq_printf(m, "%s: "LPU64"\n", prefix, pos); -+ seq_printf(m, "%s: "LPU64"\n", prefix, pos); - else -- rc = seq_printf(m, "%s: N/A\n", prefix); -- return rc; -+ seq_printf(m, "%s: N/A\n", prefix); - } - - int osd_scrub_dump(struct seq_file *m, struct osd_device *dev) -@@ -3041,71 +3029,48 @@ int osd_scrub_dump(struct seq_file *m, struct osd_device *dev) - struct scrub_file *sf = &scrub->os_file; - __u64 checked; - __u64 speed; -- int rc; - - down_read(&scrub->os_rwsem); -- rc = seq_printf(m, "name: OI_scrub\n" -- "magic: 0x%x\n" -- "oi_files: %d\n" -- "status: %s\n", -- sf->sf_magic, (int)sf->sf_oi_count, -- scrub_status_names[sf->sf_status]); -- if (rc < 0) -- goto out; -+ seq_printf(m, "name: OI_scrub\n" -+ "magic: 0x%x\n" -+ "oi_files: %d\n" -+ "status: %s\n", -+ sf->sf_magic, (int)sf->sf_oi_count, -+ scrub_status_names[sf->sf_status]); - -- rc = scrub_bits_dump(m, sf->sf_flags, scrub_flags_names, -- "flags"); -- if (rc < 0) -- goto out; -+ scrub_bits_dump(m, sf->sf_flags, scrub_flags_names, "flags"); - -- rc = scrub_bits_dump(m, sf->sf_param, scrub_param_names, -- "param"); -- if (rc < 0) -- goto out; -+ scrub_bits_dump(m, sf->sf_param, scrub_param_names, "param"); - -- rc = scrub_time_dump(m, sf->sf_time_last_complete, -- "time_since_last_completed"); -- if (rc < 0) -- goto out; -+ scrub_time_dump(m, sf->sf_time_last_complete, -+ "time_since_last_completed"); - -- rc = scrub_time_dump(m, sf->sf_time_latest_start, -- "time_since_latest_start"); -- if (rc < 0) -- goto out; -+ scrub_time_dump(m, sf->sf_time_latest_start, -+ "time_since_latest_start"); - -- rc = scrub_time_dump(m, sf->sf_time_last_checkpoint, -- "time_since_last_checkpoint"); -- if (rc < 0) -- goto out; -+ scrub_time_dump(m, sf->sf_time_last_checkpoint, -+ "time_since_last_checkpoint"); - -- rc = scrub_pos_dump(m, sf->sf_pos_latest_start, -- "latest_start_position"); -- if (rc < 0) -- goto out; -+ scrub_pos_dump(m, sf->sf_pos_latest_start, -+ "latest_start_position"); - -- rc = scrub_pos_dump(m, sf->sf_pos_last_checkpoint, -- "last_checkpoint_position"); -- if (rc < 0) -- goto out; -+ scrub_pos_dump(m, sf->sf_pos_last_checkpoint, -+ "last_checkpoint_position"); - -- rc = scrub_pos_dump(m, sf->sf_pos_first_inconsistent, -- "first_failure_position"); -- if (rc < 0) -- goto out; -+ scrub_pos_dump(m, sf->sf_pos_first_inconsistent, -+ "first_failure_position"); - - checked = sf->sf_items_checked + scrub->os_new_checked; -- rc = seq_printf(m, "checked: "LPU64"\n" -- "updated: "LPU64"\n" -- "failed: "LPU64"\n" -- "prior_updated: "LPU64"\n" -- "noscrub: "LPU64"\n" -- "igif: "LPU64"\n" -- "success_count: %u\n", -- checked, sf->sf_items_updated, sf->sf_items_failed, -- sf->sf_items_updated_prior, sf->sf_items_noscrub, -- sf->sf_items_igif, sf->sf_success_count); -- if (rc < 0) -- goto out; -+ seq_printf(m, "checked: "LPU64"\n" -+ "updated: "LPU64"\n" -+ "failed: "LPU64"\n" -+ "prior_updated: "LPU64"\n" -+ "noscrub: "LPU64"\n" -+ "igif: "LPU64"\n" -+ "success_count: %u\n", -+ checked, sf->sf_items_updated, sf->sf_items_failed, -+ sf->sf_items_updated_prior, sf->sf_items_noscrub, -+ sf->sf_items_igif, sf->sf_success_count); - - speed = checked; - if (thread_is_running(&scrub->os_thread)) { -@@ -3120,31 +3085,30 @@ int osd_scrub_dump(struct seq_file *m, struct osd_device *dev) - do_div(new_checked, duration); - if (rtime != 0) - do_div(speed, rtime); -- rc = seq_printf(m, "run_time: %u seconds\n" -- "average_speed: "LPU64" objects/sec\n" -- "real-time_speed: "LPU64" objects/sec\n" -- "current_position: %u\n" -- "lf_scanned: "LPU64"\n" -- "lf_repaired: "LPU64"\n" -- "lf_failed: "LPU64"\n", -- rtime, speed, new_checked, scrub->os_pos_current, -- scrub->os_lf_scanned, scrub->os_lf_repaired, -- scrub->os_lf_failed); -+ seq_printf(m, "run_time: %u seconds\n" -+ "average_speed: "LPU64" objects/sec\n" -+ "real-time_speed: "LPU64" objects/sec\n" -+ "current_position: %u\n" -+ "lf_scanned: "LPU64"\n" -+ "lf_repaired: "LPU64"\n" -+ "lf_failed: "LPU64"\n", -+ rtime, speed, new_checked, scrub->os_pos_current, -+ scrub->os_lf_scanned, scrub->os_lf_repaired, -+ scrub->os_lf_failed); - } else { - if (sf->sf_run_time != 0) - do_div(speed, sf->sf_run_time); -- rc = seq_printf(m, "run_time: %u seconds\n" -- "average_speed: "LPU64" objects/sec\n" -- "real-time_speed: N/A\n" -- "current_position: N/A\n" -- "lf_scanned: "LPU64"\n" -- "lf_repaired: "LPU64"\n" -- "lf_failed: "LPU64"\n", -- sf->sf_run_time, speed, scrub->os_lf_scanned, -- scrub->os_lf_repaired, scrub->os_lf_failed); -+ seq_printf(m, "run_time: %u seconds\n" -+ "average_speed: "LPU64" objects/sec\n" -+ "real-time_speed: N/A\n" -+ "current_position: N/A\n" -+ "lf_scanned: "LPU64"\n" -+ "lf_repaired: "LPU64"\n" -+ "lf_failed: "LPU64"\n", -+ sf->sf_run_time, speed, scrub->os_lf_scanned, -+ scrub->os_lf_repaired, scrub->os_lf_failed); - } - --out: - up_read(&scrub->os_rwsem); -- return (rc < 0 ? -ENOSPC : 0); -+ return 0; - } -diff --git a/lustre/osd-zfs/osd_lproc.c b/lustre/osd-zfs/osd_lproc.c -index c43aff8..d648298 100644 ---- a/lustre/osd-zfs/osd_lproc.c -+++ b/lustre/osd-zfs/osd_lproc.c -@@ -217,7 +217,8 @@ out: - - static int zfs_osd_fstype_seq_show(struct seq_file *m, void *data) - { -- return seq_printf(m, "zfs\n"); -+ seq_puts(m, "zfs\n"); -+ return 0; - } - LPROC_SEQ_FOPS_RO(zfs_osd_fstype); - -@@ -226,7 +227,8 @@ static int zfs_osd_mntdev_seq_show(struct seq_file *m, void *data) - struct osd_device *osd = osd_dt_dev((struct dt_device *)m->private); - - LASSERT(osd != NULL); -- return seq_printf(m, "%s\n", osd->od_mntdev); -+ seq_printf(m, "%s\n", osd->od_mntdev); -+ return 0; - } - LPROC_SEQ_FOPS_RO(zfs_osd_mntdev); - -@@ -254,7 +256,8 @@ static int zfs_osd_iused_est_seq_show(struct seq_file *m, void *data) - struct osd_device *osd = osd_dt_dev((struct dt_device *)m->private); - LASSERT(osd != NULL); - -- return seq_printf(m, "%d\n", osd->od_quota_iused_est); -+ seq_printf(m, "%d\n", osd->od_quota_iused_est); -+ return 0; - } - - static ssize_t -diff --git a/lustre/osp/lproc_osp.c b/lustre/osp/lproc_osp.c -index 422b388..cf0ee83 100644 ---- a/lustre/osp/lproc_osp.c -+++ b/lustre/osp/lproc_osp.c -@@ -52,12 +52,11 @@ - static int osp_active_seq_show(struct seq_file *m, void *data) - { - struct obd_device *dev = m->private; -- int rc; - - LPROCFS_CLIMP_CHECK(dev); -- rc = seq_printf(m, "%d\n", !dev->u.cli.cl_import->imp_deactive); -+ seq_printf(m, "%d\n", !dev->u.cli.cl_import->imp_deactive); - LPROCFS_CLIMP_EXIT(dev); -- return rc; -+ return 0; - } - - /** -@@ -113,7 +112,8 @@ static int osp_syn_in_flight_seq_show(struct seq_file *m, void *data) - if (osp == NULL) - return -EINVAL; - -- return seq_printf(m, "%u\n", osp->opd_syn_rpc_in_flight); -+ seq_printf(m, "%u\n", osp->opd_syn_rpc_in_flight); -+ return 0; - } - LPROC_SEQ_FOPS_RO(osp_syn_in_flight); - -@@ -133,7 +133,8 @@ static int osp_syn_in_prog_seq_show(struct seq_file *m, void *data) - if (osp == NULL) - return -EINVAL; - -- return seq_printf(m, "%u\n", osp->opd_syn_rpc_in_progress); -+ seq_printf(m, "%u\n", osp->opd_syn_rpc_in_progress); -+ return 0; - } - LPROC_SEQ_FOPS_RO(osp_syn_in_prog); - -@@ -153,7 +154,8 @@ static int osp_syn_changes_seq_show(struct seq_file *m, void *data) - if (osp == NULL) - return -EINVAL; - -- return seq_printf(m, "%lu\n", osp->opd_syn_changes); -+ seq_printf(m, "%lu\n", osp->opd_syn_changes); -+ return 0; - } - - /** -@@ -203,7 +205,8 @@ static int osp_max_rpcs_in_flight_seq_show(struct seq_file *m, void *data) - if (osp == NULL) - return -EINVAL; - -- return seq_printf(m, "%u\n", osp->opd_syn_max_rpc_in_flight); -+ seq_printf(m, "%u\n", osp->opd_syn_max_rpc_in_flight); -+ return 0; - } - - /** -@@ -256,7 +259,8 @@ static int osp_max_rpcs_in_prog_seq_show(struct seq_file *m, void *data) - if (osp == NULL) - return -EINVAL; - -- return seq_printf(m, "%u\n", osp->opd_syn_max_rpc_in_progress); -+ seq_printf(m, "%u\n", osp->opd_syn_max_rpc_in_progress); -+ return 0; - } - - /** -@@ -310,7 +314,8 @@ static int osp_create_count_seq_show(struct seq_file *m, void *data) - if (osp == NULL || osp->opd_pre == NULL) - return 0; - -- return seq_printf(m, "%d\n", osp->opd_pre_create_count); -+ seq_printf(m, "%d\n", osp->opd_pre_create_count); -+ return 0; - } - - /** -@@ -378,7 +383,8 @@ static int osp_max_create_count_seq_show(struct seq_file *m, void *data) - if (osp == NULL || osp->opd_pre == NULL) - return 0; - -- return seq_printf(m, "%d\n", osp->opd_pre_max_create_count); -+ seq_printf(m, "%d\n", osp->opd_pre_max_create_count); -+ return 0; - } - - /** -@@ -437,7 +443,8 @@ static int osp_prealloc_next_id_seq_show(struct seq_file *m, void *data) - if (osp == NULL || osp->opd_pre == NULL) - return 0; - -- return seq_printf(m, "%u\n", fid_oid(&osp->opd_pre_used_fid) + 1); -+ seq_printf(m, "%u\n", fid_oid(&osp->opd_pre_used_fid) + 1); -+ return 0; - } - LPROC_SEQ_FOPS_RO(osp_prealloc_next_id); - -@@ -457,7 +464,8 @@ static int osp_prealloc_last_id_seq_show(struct seq_file *m, void *data) - if (osp == NULL || osp->opd_pre == NULL) - return 0; - -- return seq_printf(m, "%u\n", fid_oid(&osp->opd_pre_last_created_fid)); -+ seq_printf(m, "%u\n", fid_oid(&osp->opd_pre_last_created_fid)); -+ return 0; - } - LPROC_SEQ_FOPS_RO(osp_prealloc_last_id); - -@@ -477,7 +485,8 @@ static int osp_prealloc_next_seq_seq_show(struct seq_file *m, void *data) - if (osp == NULL || osp->opd_pre == NULL) - return 0; - -- return seq_printf(m, LPX64"\n", fid_seq(&osp->opd_pre_used_fid)); -+ seq_printf(m, LPX64"\n", fid_seq(&osp->opd_pre_used_fid)); -+ return 0; - } - LPROC_SEQ_FOPS_RO(osp_prealloc_next_seq); - -@@ -497,8 +506,9 @@ static int osp_prealloc_last_seq_seq_show(struct seq_file *m, void *data) - if (osp == NULL || osp->opd_pre == NULL) - return 0; - -- return seq_printf(m, LPX64"\n", -- fid_seq(&osp->opd_pre_last_created_fid)); -+ seq_printf(m, LPX64"\n", -+ fid_seq(&osp->opd_pre_last_created_fid)); -+ return 0; - } - LPROC_SEQ_FOPS_RO(osp_prealloc_last_seq); - -@@ -518,7 +528,8 @@ static int osp_prealloc_reserved_seq_show(struct seq_file *m, void *data) - if (osp == NULL || osp->opd_pre == NULL) - return 0; - -- return seq_printf(m, LPU64"\n", osp->opd_pre_reserved); -+ seq_printf(m, LPU64"\n", osp->opd_pre_reserved); -+ return 0; - } - LPROC_SEQ_FOPS_RO(osp_prealloc_reserved); - -@@ -538,7 +549,8 @@ static int osp_maxage_seq_show(struct seq_file *m, void *data) - if (osp == NULL) - return -EINVAL; - -- return seq_printf(m, "%u\n", osp->opd_statfs_maxage); -+ seq_printf(m, "%u\n", osp->opd_statfs_maxage); -+ return 0; - } - - /** -@@ -593,7 +605,8 @@ static int osp_pre_status_seq_show(struct seq_file *m, void *data) - if (osp == NULL || osp->opd_pre == NULL) - return -EINVAL; - -- return seq_printf(m, "%d\n", osp->opd_pre_status); -+ seq_printf(m, "%d\n", osp->opd_pre_status); -+ return 0; - } - LPROC_SEQ_FOPS_RO(osp_pre_status); - -@@ -620,8 +633,9 @@ static int osp_destroys_in_flight_seq_show(struct seq_file *m, void *data) - if (osp == NULL) - return -EINVAL; - -- return seq_printf(m, "%lu\n", -- osp->opd_syn_rpc_in_progress + osp->opd_syn_changes); -+ seq_printf(m, "%lu\n", -+ osp->opd_syn_rpc_in_progress + osp->opd_syn_changes); -+ return 0; - } - LPROC_SEQ_FOPS_RO(osp_destroys_in_flight); - -@@ -641,7 +655,8 @@ static int osp_old_sync_processed_seq_show(struct seq_file *m, void *data) - if (osp == NULL) - return -EINVAL; - -- return seq_printf(m, "%d\n", osp->opd_syn_prev_done); -+ seq_printf(m, "%d\n", osp->opd_syn_prev_done); -+ return 0; - } - LPROC_SEQ_FOPS_RO(osp_old_sync_processed); - -@@ -660,7 +675,8 @@ osp_lfsck_max_rpcs_in_flight_seq_show(struct seq_file *m, void *data) - __u32 max; - - max = obd_get_max_rpcs_in_flight(&dev->u.cli); -- return seq_printf(m, "%u\n", max); -+ seq_printf(m, "%u\n", max); -+ return 0; - } - - /** -diff --git a/lustre/ptlrpc/gss/lproc_gss.c b/lustre/ptlrpc/gss/lproc_gss.c -index 13427fc..4648695 100644 ---- a/lustre/ptlrpc/gss/lproc_gss.c -+++ b/lustre/ptlrpc/gss/lproc_gss.c -@@ -96,25 +96,26 @@ void gss_stat_oos_record_svc(int phase, int replay) - - static int gss_proc_oos_seq_show(struct seq_file *m, void *v) - { -- return seq_printf(m, "seqwin: %u\n" -- "backwin: %u\n" -- "client fall behind seqwin\n" -- " occurrence: %d\n" -- " max seq behind: %d\n" -- "server replay detected:\n" -- " phase 0: %d\n" -- " phase 1: %d\n" -- " phase 2: %d\n" -- "server verify ok:\n" -- " phase 2: %d\n", -- GSS_SEQ_WIN_MAIN, -- GSS_SEQ_WIN_BACK, -- atomic_read(&gss_stat_oos.oos_cli_count), -- gss_stat_oos.oos_cli_behind, -- atomic_read(&gss_stat_oos.oos_svc_replay[0]), -- atomic_read(&gss_stat_oos.oos_svc_replay[1]), -- atomic_read(&gss_stat_oos.oos_svc_replay[2]), -- atomic_read(&gss_stat_oos.oos_svc_pass[2])); -+ seq_printf(m, "seqwin: %u\n" -+ "backwin: %u\n" -+ "client fall behind seqwin\n" -+ " occurrence: %d\n" -+ " max seq behind: %d\n" -+ "server replay detected:\n" -+ " phase 0: %d\n" -+ " phase 1: %d\n" -+ " phase 2: %d\n" -+ "server verify ok:\n" -+ " phase 2: %d\n", -+ GSS_SEQ_WIN_MAIN, -+ GSS_SEQ_WIN_BACK, -+ atomic_read(&gss_stat_oos.oos_cli_count), -+ gss_stat_oos.oos_cli_behind, -+ atomic_read(&gss_stat_oos.oos_svc_replay[0]), -+ atomic_read(&gss_stat_oos.oos_svc_replay[1]), -+ atomic_read(&gss_stat_oos.oos_svc_replay[2]), -+ atomic_read(&gss_stat_oos.oos_svc_pass[2])); -+ return 0; - } - LPROC_SEQ_FOPS_RO(gss_proc_oos); - -@@ -154,7 +155,8 @@ static int gss_lk_debug_level = 1; - - static int gss_lk_proc_dl_seq_show(struct seq_file *m, void *v) - { -- return seq_printf(m, "%u\n", gss_lk_debug_level); -+ seq_printf(m, "%u\n", gss_lk_debug_level); -+ return 0; - } - - static ssize_t -diff --git a/lustre/ptlrpc/lproc_ptlrpc.c b/lustre/ptlrpc/lproc_ptlrpc.c -index 4c55fe1..3cb05f5 100644 ---- a/lustre/ptlrpc/lproc_ptlrpc.c -+++ b/lustre/ptlrpc/lproc_ptlrpc.c -@@ -268,7 +268,8 @@ ptlrpc_lprocfs_req_history_len_seq_show(struct seq_file *m, void *v) - ptlrpc_service_for_each_part(svcpt, i, svc) - total += svcpt->scp_hist_nrqbds; - -- return seq_printf(m, "%d\n", total); -+ seq_printf(m, "%d\n", total); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ptlrpc_lprocfs_req_history_len); - -@@ -283,7 +284,8 @@ ptlrpc_lprocfs_req_history_max_seq_show(struct seq_file *m, void *n) - ptlrpc_service_for_each_part(svcpt, i, svc) - total += svc->srv_hist_nrqbds_cpt_max; - -- return seq_printf(m, "%d\n", total); -+ seq_printf(m, "%d\n", total); -+ return 0; - } - - static ssize_t -@@ -330,8 +332,9 @@ ptlrpc_lprocfs_threads_min_seq_show(struct seq_file *m, void *n) - { - struct ptlrpc_service *svc = m->private; - -- return seq_printf(m, "%d\n", -- svc->srv_nthrs_cpt_init * svc->srv_ncpts); -+ seq_printf(m, "%d\n", -+ svc->srv_nthrs_cpt_init * svc->srv_ncpts); -+ return 0; - } - - static ssize_t -@@ -375,7 +378,8 @@ ptlrpc_lprocfs_threads_started_seq_show(struct seq_file *m, void *n) - ptlrpc_service_for_each_part(svcpt, i, svc) - total += svcpt->scp_nthrs_running; - -- return seq_printf(m, "%d\n", total); -+ seq_printf(m, "%d\n", total); -+ return 0; - } - LPROC_SEQ_FOPS_RO(ptlrpc_lprocfs_threads_started); - -@@ -384,8 +388,9 @@ ptlrpc_lprocfs_threads_max_seq_show(struct seq_file *m, void *n) - { - struct ptlrpc_service *svc = m->private; - -- return seq_printf(m, "%d\n", -- svc->srv_nthrs_cpt_limit * svc->srv_ncpts); -+ seq_printf(m, "%d\n", -+ svc->srv_nthrs_cpt_limit * svc->srv_ncpts); -+ return 0; - } - - static ssize_t -@@ -599,21 +604,21 @@ again: - for (pol_idx = 0; pol_idx < num_pols; pol_idx++) { - if (strlen(infos[pol_idx].pi_arg) > 0) - seq_printf(m, " - name: %s %s\n", -- infos[pol_idx].pi_name, -- infos[pol_idx].pi_arg); -+ infos[pol_idx].pi_name, -+ infos[pol_idx].pi_arg); - else - seq_printf(m, " - name: %s\n", -- infos[pol_idx].pi_name); -+ infos[pol_idx].pi_name); - - - seq_printf(m, " state: %s\n" -- " fallback: %s\n" -- " queued: %-20d\n" -- " active: %-20d\n\n", -- nrs_state2str(infos[pol_idx].pi_state), -- infos[pol_idx].pi_fallback ? "yes" : "no", -- (int)infos[pol_idx].pi_req_queued, -- (int)infos[pol_idx].pi_req_started); -+ " fallback: %s\n" -+ " queued: %-20d\n" -+ " active: %-20d\n\n", -+ nrs_state2str(infos[pol_idx].pi_state), -+ infos[pol_idx].pi_fallback ? "yes" : "no", -+ (int)infos[pol_idx].pi_req_queued, -+ (int)infos[pol_idx].pi_req_started); - } - - if (!hp && nrs_svc_has_hp(svc)) { -@@ -1047,7 +1052,8 @@ LPROC_SEQ_FOPS_RO(ptlrpc_lprocfs_timeouts); - static int ptlrpc_lprocfs_hp_ratio_seq_show(struct seq_file *m, void *v) - { - struct ptlrpc_service *svc = m->private; -- return seq_printf(m, "%d\n", svc->srv_hpreq_ratio); -+ seq_printf(m, "%d\n", svc->srv_hpreq_ratio); -+ return 0; - } - - static ssize_t -@@ -1296,12 +1302,11 @@ int lprocfs_pinger_recov_seq_show(struct seq_file *m, void *n) - { - struct obd_device *obd = m->private; - struct obd_import *imp = obd->u.cli.cl_import; -- int rc; - - LPROCFS_CLIMP_CHECK(obd); -- rc = seq_printf(m, "%d\n", !imp->imp_no_pinger_recover); -+ seq_printf(m, "%d\n", !imp->imp_no_pinger_recover); - LPROCFS_CLIMP_EXIT(obd); -- return rc; -+ return 0; - } - EXPORT_SYMBOL(lprocfs_pinger_recov_seq_show); - -diff --git a/lustre/ptlrpc/nodemap_lproc.c b/lustre/ptlrpc/nodemap_lproc.c -index e5c4b0c..a77c478 100644 ---- a/lustre/ptlrpc/nodemap_lproc.c -+++ b/lustre/ptlrpc/nodemap_lproc.c -@@ -239,7 +239,8 @@ static int nodemap_exports_open(struct inode *inode, struct file *file) - */ - static int nodemap_active_seq_show(struct seq_file *m, void *data) - { -- return seq_printf(m, "%u\n", (unsigned int)nodemap_active); -+ seq_printf(m, "%u\n", (unsigned int)nodemap_active); -+ return 0; - } - - /** -@@ -290,21 +291,20 @@ LPROC_SEQ_FOPS(nodemap_active); - static int nodemap_id_seq_show(struct seq_file *m, void *data) - { - struct lu_nodemap *nodemap; -- int rc; - - mutex_lock(&active_config_lock); - nodemap = nodemap_lookup(m->private); - mutex_unlock(&active_config_lock); - if (IS_ERR(nodemap)) { -- rc = PTR_ERR(nodemap); -+ int rc = PTR_ERR(nodemap); - CERROR("cannot find nodemap '%s': rc = %d\n", - (char *)m->private, rc); - return rc; - } - -- rc = seq_printf(m, "%u\n", nodemap->nm_id); -+ seq_printf(m, "%u\n", nodemap->nm_id); - nodemap_putref(nodemap); -- return rc; -+ return 0; - } - LPROC_SEQ_FOPS_RO(nodemap_id); - -@@ -318,21 +318,20 @@ LPROC_SEQ_FOPS_RO(nodemap_id); - static int nodemap_squash_uid_seq_show(struct seq_file *m, void *data) - { - struct lu_nodemap *nodemap; -- int rc; - - mutex_lock(&active_config_lock); - nodemap = nodemap_lookup(m->private); - mutex_unlock(&active_config_lock); - if (IS_ERR(nodemap)) { -- rc = PTR_ERR(nodemap); -+ int rc = PTR_ERR(nodemap); - CERROR("cannot find nodemap '%s': rc = %d\n", - (char *)m->private, rc); - return rc; - } - -- rc = seq_printf(m, "%u\n", nodemap->nm_squash_uid); -+ seq_printf(m, "%u\n", nodemap->nm_squash_uid); - nodemap_putref(nodemap); -- return rc; -+ return 0; - } - - /** -@@ -345,21 +344,20 @@ static int nodemap_squash_uid_seq_show(struct seq_file *m, void *data) - static int nodemap_squash_gid_seq_show(struct seq_file *m, void *data) - { - struct lu_nodemap *nodemap; -- int rc; - - mutex_lock(&active_config_lock); - nodemap = nodemap_lookup(m->private); - mutex_unlock(&active_config_lock); - if (IS_ERR(nodemap)) { -- rc = PTR_ERR(nodemap); -+ int rc = PTR_ERR(nodemap); - CERROR("cannot find nodemap '%s': rc = %d\n", - (char *)m->private, rc); - return rc; - } - -- rc = seq_printf(m, "%u\n", nodemap->nm_squash_gid); -+ seq_printf(m, "%u\n", nodemap->nm_squash_gid); - nodemap_putref(nodemap); -- return rc; -+ return 0; - } - - /** -@@ -372,21 +370,21 @@ static int nodemap_squash_gid_seq_show(struct seq_file *m, void *data) - static int nodemap_trusted_seq_show(struct seq_file *m, void *data) - { - struct lu_nodemap *nodemap; -- int rc; - - mutex_lock(&active_config_lock); - nodemap = nodemap_lookup(m->private); - mutex_unlock(&active_config_lock); - if (IS_ERR(nodemap)) { -- rc = PTR_ERR(nodemap); -+ int rc = PTR_ERR(nodemap); -+ - CERROR("cannot find nodemap '%s': rc = %d\n", - (char *)m->private, rc); - return rc; - } - -- rc = seq_printf(m, "%d\n", (int)nodemap->nmf_trust_client_ids); -+ seq_printf(m, "%d\n", (int)nodemap->nmf_trust_client_ids); - nodemap_putref(nodemap); -- return rc; -+ return 0; - } - - /** -@@ -411,9 +409,9 @@ static int nodemap_admin_seq_show(struct seq_file *m, void *data) - return rc; - } - -- rc = seq_printf(m, "%d\n", (int)nodemap->nmf_allow_root_access); -+ seq_printf(m, "%d\n", (int)nodemap->nmf_allow_root_access); - nodemap_putref(nodemap); -- return rc; -+ return 0; - } - - #ifdef NODEMAP_PROC_DEBUG -diff --git a/lustre/ptlrpc/nrs_tbf.c b/lustre/ptlrpc/nrs_tbf.c -index 7f92e10..6c94ff5 100644 ---- a/lustre/ptlrpc/nrs_tbf.c -+++ b/lustre/ptlrpc/nrs_tbf.c -@@ -832,9 +832,10 @@ static int nrs_tbf_jobid_rule_init(struct ptlrpc_nrs_policy *policy, - static int - nrs_tbf_jobid_rule_dump(struct nrs_tbf_rule *rule, struct seq_file *m) - { -- return seq_printf(m, "%s {%s} %llu, ref %d\n", rule->tr_name, -+ seq_printf(m, "%s {%s} %llu, ref %d\n", rule->tr_name, - rule->tr_jobids_str, rule->tr_rpc_rate, - atomic_read(&rule->tr_ref) - 1); -+ return 0; - } - - static int -@@ -1037,9 +1038,10 @@ static int nrs_tbf_nid_rule_init(struct ptlrpc_nrs_policy *policy, - static int - nrs_tbf_nid_rule_dump(struct nrs_tbf_rule *rule, struct seq_file *m) - { -- return seq_printf(m, "%s {%s} %llu, ref %d\n", rule->tr_name, -+ seq_printf(m, "%s {%s} %llu, ref %d\n", rule->tr_name, - rule->tr_nids_str, rule->tr_rpc_rate, - atomic_read(&rule->tr_ref) - 1); -+ return 0; - } - - static int -diff --git a/lustre/ptlrpc/sec_bulk.c b/lustre/ptlrpc/sec_bulk.c -index c091dd6..87b570e 100644 ---- a/lustre/ptlrpc/sec_bulk.c -+++ b/lustre/ptlrpc/sec_bulk.c -@@ -138,55 +138,49 @@ static struct shrinker *pools_shrinker; - */ - int sptlrpc_proc_enc_pool_seq_show(struct seq_file *m, void *v) - { -- int rc; -- - spin_lock(&page_pools.epp_lock); - -- rc = seq_printf(m, -- "physical pages: %lu\n" -- "pages per pool: %lu\n" -- "max pages: %lu\n" -- "max pools: %u\n" -- "total pages: %lu\n" -- "total free: %lu\n" -- "idle index: %lu/100\n" -- "last shrink: %lds\n" -- "last access: %lds\n" -- "max pages reached: %lu\n" -- "grows: %u\n" -- "grows failure: %u\n" -- "shrinks: %u\n" -- "cache access: %lu\n" -- "cache missing: %lu\n" -- "low free mark: %lu\n" -- "max waitqueue depth: %u\n" -- "max wait time: "CFS_TIME_T"/%lu\n" -- "out of mem: %lu\n" -- , -- totalram_pages, -- PAGES_PER_POOL, -- page_pools.epp_max_pages, -- page_pools.epp_max_pools, -- page_pools.epp_total_pages, -- page_pools.epp_free_pages, -- page_pools.epp_idle_idx, -- cfs_time_current_sec() - page_pools.epp_last_shrink, -- cfs_time_current_sec() - page_pools.epp_last_access, -- page_pools.epp_st_max_pages, -- page_pools.epp_st_grows, -- page_pools.epp_st_grow_fails, -- page_pools.epp_st_shrinks, -- page_pools.epp_st_access, -- page_pools.epp_st_missings, -- page_pools.epp_st_lowfree, -- page_pools.epp_st_max_wqlen, -- page_pools.epp_st_max_wait, -- msecs_to_jiffies(MSEC_PER_SEC), -- page_pools.epp_st_outofmem -- ); -+ seq_printf(m, "physical pages: %lu\n" -+ "pages per pool: %lu\n" -+ "max pages: %lu\n" -+ "max pools: %u\n" -+ "total pages: %lu\n" -+ "total free: %lu\n" -+ "idle index: %lu/100\n" -+ "last shrink: %lds\n" -+ "last access: %lds\n" -+ "max pages reached: %lu\n" -+ "grows: %u\n" -+ "grows failure: %u\n" -+ "shrinks: %u\n" -+ "cache access: %lu\n" -+ "cache missing: %lu\n" -+ "low free mark: %lu\n" -+ "max waitqueue depth: %u\n" -+ "max wait time: "CFS_TIME_T"/%lu\n" -+ "out of mem: %lu\n", -+ totalram_pages, PAGES_PER_POOL, -+ page_pools.epp_max_pages, -+ page_pools.epp_max_pools, -+ page_pools.epp_total_pages, -+ page_pools.epp_free_pages, -+ page_pools.epp_idle_idx, -+ cfs_time_current_sec() - page_pools.epp_last_shrink, -+ cfs_time_current_sec() - page_pools.epp_last_access, -+ page_pools.epp_st_max_pages, -+ page_pools.epp_st_grows, -+ page_pools.epp_st_grow_fails, -+ page_pools.epp_st_shrinks, -+ page_pools.epp_st_access, -+ page_pools.epp_st_missings, -+ page_pools.epp_st_lowfree, -+ page_pools.epp_st_max_wqlen, -+ page_pools.epp_st_max_wait, -+ msecs_to_jiffies(MSEC_PER_SEC), -+ page_pools.epp_st_outofmem); - - spin_unlock(&page_pools.epp_lock); -- return rc; -+ return 0; - } - - static void enc_pools_release_free_pages(long npages) -diff --git a/lustre/quota/qsd_lib.c b/lustre/quota/qsd_lib.c -index 9f89cac..efd7840 100644 ---- a/lustre/quota/qsd_lib.c -+++ b/lustre/quota/qsd_lib.c -@@ -77,7 +77,6 @@ static int qsd_state_seq_show(struct seq_file *m, void *data) - { - struct qsd_instance *qsd = m->private; - char enabled[5]; -- int rc; - - LASSERT(qsd != NULL); - -@@ -89,14 +88,14 @@ static int qsd_state_seq_show(struct seq_file *m, void *data) - if (strlen(enabled) == 0) - strcat(enabled, "none"); - -- rc = seq_printf(m, "target name: %s\n" -- "pool ID: %d\n" -- "type: %s\n" -- "quota enabled: %s\n" -- "conn to master: %s\n", -- qsd->qsd_svname, qsd->qsd_pool_id, -- qsd->qsd_is_md ? "md" : "dt", enabled, -- qsd->qsd_exp_valid ? "setup" : "not setup yet"); -+ seq_printf(m, "target name: %s\n" -+ "pool ID: %d\n" -+ "type: %s\n" -+ "quota enabled: %s\n" -+ "conn to master: %s\n", -+ qsd->qsd_svname, qsd->qsd_pool_id, -+ qsd->qsd_is_md ? "md" : "dt", enabled, -+ qsd->qsd_exp_valid ? "setup" : "not setup yet"); - - if (qsd->qsd_prepared) { - memset(enabled, 0, sizeof(enabled)); -@@ -106,18 +105,18 @@ static int qsd_state_seq_show(struct seq_file *m, void *data) - strcat(enabled, "g"); - if (strlen(enabled) == 0) - strcat(enabled, "none"); -- rc += seq_printf(m, "space acct: %s\n" -- "user uptodate: glb[%d],slv[%d],reint[%d]\n" -- "group uptodate: glb[%d],slv[%d],reint[%d]\n", -- enabled, -- qsd->qsd_type_array[USRQUOTA]->qqi_glb_uptodate, -- qsd->qsd_type_array[USRQUOTA]->qqi_slv_uptodate, -- qsd->qsd_type_array[USRQUOTA]->qqi_reint, -- qsd->qsd_type_array[GRPQUOTA]->qqi_glb_uptodate, -- qsd->qsd_type_array[GRPQUOTA]->qqi_slv_uptodate, -- qsd->qsd_type_array[GRPQUOTA]->qqi_reint); -+ seq_printf(m, "space acct: %s\n" -+ "user uptodate: glb[%d],slv[%d],reint[%d]\n" -+ "group uptodate: glb[%d],slv[%d],reint[%d]\n", -+ enabled, -+ qsd->qsd_type_array[USRQUOTA]->qqi_glb_uptodate, -+ qsd->qsd_type_array[USRQUOTA]->qqi_slv_uptodate, -+ qsd->qsd_type_array[USRQUOTA]->qqi_reint, -+ qsd->qsd_type_array[GRPQUOTA]->qqi_glb_uptodate, -+ qsd->qsd_type_array[GRPQUOTA]->qqi_slv_uptodate, -+ qsd->qsd_type_array[GRPQUOTA]->qqi_reint); - } -- return rc; -+ return 0; - } - LPROC_SEQ_FOPS_RO(qsd_state); - -@@ -136,7 +135,8 @@ static int qsd_enabled_seq_show(struct seq_file *m, void *data) - if (strlen(enabled) == 0) - strcat(enabled, "none"); - -- return seq_printf(m, "%s\n", enabled); -+ seq_printf(m, "%s\n", enabled); -+ return 0; - } - LPROC_SEQ_FOPS_RO(qsd_enabled); - -@@ -185,7 +185,8 @@ static int qsd_timeout_seq_show(struct seq_file *m, void *data) - struct qsd_instance *qsd = m->private; - LASSERT(qsd != NULL); - -- return seq_printf(m, "%d\n", qsd_wait_timeout(qsd)); -+ seq_printf(m, "%d\n", qsd_wait_timeout(qsd)); -+ return 0; - } - - static ssize_t --- -2.8.2 - diff --git a/sys-cluster/lustre/files/0013-LU-8056-libcfs-Support-for-linux-4.2-kernels.patch b/sys-cluster/lustre/files/0001-LU-8056-libcfs-Support-for-linux-4.2-kernels.patch similarity index 89% rename from sys-cluster/lustre/files/0013-LU-8056-libcfs-Support-for-linux-4.2-kernels.patch rename to sys-cluster/lustre/files/0001-LU-8056-libcfs-Support-for-linux-4.2-kernels.patch index b894476..e16ec2e 100644 --- a/sys-cluster/lustre/files/0013-LU-8056-libcfs-Support-for-linux-4.2-kernels.patch +++ b/sys-cluster/lustre/files/0001-LU-8056-libcfs-Support-for-linux-4.2-kernels.patch @@ -1,7 +1,7 @@ -From f6253abe465ac9ffea7664da948e0f40b46ca24f Mon Sep 17 00:00:00 2001 +From 9b478d607922c9683663f8e317d93b840e528884 Mon Sep 17 00:00:00 2001 From: Dmitry Eremin Date: Thu, 5 May 2016 22:08:05 +0300 -Subject: [PATCH 13/19] LU-8056 libcfs: Support for linux 4.2 kernels +Subject: [PATCH 1/7] LU-8056 libcfs: Support for linux 4.2 kernels In kernel version 4.2 commit df6b35f409af0a8ff1ef62f552b8402f3fef8665 header file i387.h was renamed to fpu/api.h @@ -15,10 +15,10 @@ Signed-off-by: Dmitry Eremin 3 files changed, 19 insertions(+) diff --git a/libcfs/autoconf/lustre-libcfs.m4 b/libcfs/autoconf/lustre-libcfs.m4 -index c787203..9ae2698 100644 +index 636d0ed..cc0e184 100644 --- a/libcfs/autoconf/lustre-libcfs.m4 +++ b/libcfs/autoconf/lustre-libcfs.m4 -@@ -318,6 +318,16 @@ topology_sibling_cpumask, [ +@@ -312,6 +312,16 @@ topology_sibling_cpumask, [ ]) # LIBCFS_HAVE_TOPOLOGY_SIBLING_CPUMASK # @@ -35,7 +35,7 @@ index c787203..9ae2698 100644 # LIBCFS_PROG_LINUX # # LibCFS linux kernel checks -@@ -356,6 +366,7 @@ LIBCFS_SHRINKER_COUNT +@@ -350,6 +360,7 @@ LIBCFS_SHRINKER_COUNT LIBCFS_HLIST_ADD_AFTER # 4.2 LIBCFS_HAVE_TOPOLOGY_SIBLING_CPUMASK diff --git a/sys-cluster/lustre/files/0002-LU-6215-gss-cache_head-is-now-on-a-hlist-in-4.3-kern.patch b/sys-cluster/lustre/files/0002-LU-6215-gss-cache_head-is-now-on-a-hlist-in-4.3-kern.patch deleted file mode 100644 index ba4c2f1..0000000 --- a/sys-cluster/lustre/files/0002-LU-6215-gss-cache_head-is-now-on-a-hlist-in-4.3-kern.patch +++ /dev/null @@ -1,192 +0,0 @@ -From 449e99feba4cfd3e417cdfc87e0eb33e163c2cb6 Mon Sep 17 00:00:00 2001 -From: Li Dongyang -Date: Tue, 1 Mar 2016 16:10:48 +1100 -Subject: [PATCH 02/19] LU-6215 gss: cache_head is now on a hlist in 4.3+ - kernels - -Since kernel 4.3 struct cache_head switched from a single -list to a hlist. This patch handles the change. - -Linux-commit: 129e5824cd96d9289679973f0ff7c48e88d569bb - -Signed-off-by: Li Dongyang -Change-Id: Iec4c7d0acf106a8f7b60d72eb2038b6d9e12f422 -Reviewed-on: http://review.whamcloud.com/18728 -Tested-by: Jenkins -Tested-by: Maloo -Reviewed-by: James Simmons -Reviewed-by: Dmitry Eremin -Reviewed-by: Oleg Drokin ---- - lustre/autoconf/lustre-core.m4 | 46 +++++++++++++++++++++++++++++++++++++ - lustre/ptlrpc/gss/gss_svc_upcall.c | 47 ++++++++++++++++++++++++++++++++------ - 2 files changed, 86 insertions(+), 7 deletions(-) - -diff --git a/lustre/autoconf/lustre-core.m4 b/lustre/autoconf/lustre-core.m4 -index b8285d0..8ed3500 100644 ---- a/lustre/autoconf/lustre-core.m4 -+++ b/lustre/autoconf/lustre-core.m4 -@@ -1948,6 +1948,49 @@ bio_endio, [ - ]) # LC_BIO_ENDIO_USES_ONE_ARG - - # -+# LC_HAVE_LOOP_CTL_GET_FREE -+# -+# 4.x kernel have moved userspace APIs to -+# the separate directory and all of them -+# support LOOP_CTL_GET_FREE -+# -+AC_DEFUN([LC_HAVE_LOOP_CTL_GET_FREE], [ -+LB_CHECK_FILE([$LINUX/include/linux/loop.h], [ -+ LB_CHECK_COMPILE([if have 'HAVE_LOOP_CTL_GET_FREE'], -+ LOOP_CTL_GET_FREE, [ -+ #include -+ ],[ -+ int i; -+ -+ i = LOOP_CTL_GET_FREE; -+ ],[ -+ AC_DEFINE(HAVE_LOOP_CTL_GET_FREE, 1, -+ [LOOP_CTL_GET_FREE exist]) -+ ]) -+],[ -+ AC_DEFINE(HAVE_LOOP_CTL_GET_FREE, 1, -+ [kernel has LOOP_CTL_GET_FREE]) -+]) -+]) # LC_HAVE_LOOP_CTL_GET_FREE -+ -+# -+# LC_HAVE_CACHE_HEAD_HLIST -+# -+# 4.3 kernel swiched to hlist for cache_head -+# -+AC_DEFUN([LC_HAVE_CACHE_HEAD_HLIST], [ -+LB_CHECK_COMPILE([if 'struct cache_head' has 'cache_list' field], -+cache_head_has_hlist, [ -+ #include -+],[ -+ do {} while(sizeof(((struct cache_head *)0)->cache_list)); -+],[ -+ AC_DEFINE(HAVE_CACHE_HEAD_HLIST, 1, -+ [cache_head has hlist cache_list]) -+]) -+]) # LC_HAVE_CACHE_HEAD_HLIST -+ -+# - # LC_PROG_LINUX - # - # Lustre linux kernel checks -@@ -2108,6 +2151,9 @@ AC_DEFUN([LC_PROG_LINUX], [ - LC_BIO_ENDIO_USES_ONE_ARG - LC_SYMLINK_OPS_USE_NAMEIDATA - -+ # 4.3 -+ LC_HAVE_CACHE_HEAD_HLIST -+ - # - AS_IF([test "x$enable_server" != xno], [ - LC_FUNC_DEV_SET_RDONLY -diff --git a/lustre/ptlrpc/gss/gss_svc_upcall.c b/lustre/ptlrpc/gss/gss_svc_upcall.c -index 429b1eb..2786d69 100644 ---- a/lustre/ptlrpc/gss/gss_svc_upcall.c -+++ b/lustre/ptlrpc/gss/gss_svc_upcall.c -@@ -149,7 +149,11 @@ struct rsi { - int major_status, minor_status; - }; - -+#ifdef HAVE_CACHE_HEAD_HLIST -+static struct hlist_head rsi_table[RSI_HASHMAX]; -+#else - static struct cache_head *rsi_table[RSI_HASHMAX]; -+#endif - static struct cache_detail rsi_cache; - static struct rsi *rsi_update(struct rsi *new, struct rsi *old); - static struct rsi *rsi_lookup(struct rsi *item); -@@ -242,7 +246,11 @@ static void rsi_put(struct kref *ref) - { - struct rsi *rsi = container_of(ref, struct rsi, h.ref); - -- LASSERT(rsi->h.next == NULL); -+#ifdef HAVE_CACHE_HEAD_HLIST -+ LASSERT(rsi->h.cache_list.next == NULL); -+#else -+ LASSERT(rsi->h.next == NULL); -+#endif - rsi_free(rsi); - OBD_FREE_PTR(rsi); - } -@@ -430,7 +438,11 @@ struct rsc { - struct gss_svc_ctx ctx; - }; - -+#ifdef HAVE_CACHE_HEAD_HLIST -+static struct hlist_head rsc_table[RSC_HASHMAX]; -+#else - static struct cache_head *rsc_table[RSC_HASHMAX]; -+#endif - static struct cache_detail rsc_cache; - static struct rsc *rsc_update(struct rsc *new, struct rsc *old); - static struct rsc *rsc_lookup(struct rsc *item); -@@ -477,7 +489,11 @@ static void rsc_put(struct kref *ref) - { - struct rsc *rsci = container_of(ref, struct rsc, h.ref); - -+#ifdef HAVE_CACHE_HEAD_HLIST -+ LASSERT(rsci->h.cache_list.next == NULL); -+#else - LASSERT(rsci->h.next == NULL); -+#endif - rsc_free(rsci); - OBD_FREE_PTR(rsci); - } -@@ -693,24 +709,41 @@ typedef int rsc_entry_match(struct rsc *rscp, long data); - - static void rsc_flush(rsc_entry_match *match, long data) - { -- struct cache_head **ch; -+#ifdef HAVE_CACHE_HEAD_HLIST -+ struct cache_head *ch = NULL; -+ struct hlist_head *head; -+#else -+ struct cache_head **ch; -+#endif - struct rsc *rscp; - int n; - ENTRY; - - write_lock(&rsc_cache.hash_lock); - for (n = 0; n < RSC_HASHMAX; n++) { -- for (ch = &rsc_cache.hash_table[n]; *ch;) { -- rscp = container_of(*ch, struct rsc, h); -+#ifdef HAVE_CACHE_HEAD_HLIST -+ head = &rsc_cache.hash_table[n]; -+ hlist_for_each_entry(ch, head, cache_list) { -+ rscp = container_of(ch, struct rsc, h); -+#else -+ for (ch = &rsc_cache.hash_table[n]; *ch;) { -+ rscp = container_of(*ch, struct rsc, h); -+#endif - - if (!match(rscp, data)) { -- ch = &((*ch)->next); -+#ifndef HAVE_CACHE_HEAD_HLIST -+ ch = &((*ch)->next); -+#endif - continue; - } - - /* it seems simply set NEGATIVE doesn't work */ -- *ch = (*ch)->next; -- rscp->h.next = NULL; -+#ifdef HAVE_CACHE_HEAD_HLIST -+ hlist_del_init(&ch->cache_list); -+#else -+ *ch = (*ch)->next; -+ rscp->h.next = NULL; -+#endif - cache_get(&rscp->h); - set_bit(CACHE_NEGATIVE, &rscp->h.flags); - COMPAT_RSC_PUT(&rscp->h, &rsc_cache); --- -2.8.2 - diff --git a/sys-cluster/lustre/files/0014-LU-8056-o2iblnd-ib_query_device-removed-in-4.5.patch b/sys-cluster/lustre/files/0002-LU-8056-o2iblnd-ib_query_device-removed-in-4.5.patch similarity index 53% rename from sys-cluster/lustre/files/0014-LU-8056-o2iblnd-ib_query_device-removed-in-4.5.patch rename to sys-cluster/lustre/files/0002-LU-8056-o2iblnd-ib_query_device-removed-in-4.5.patch index 4647eed..6ce8433 100644 --- a/sys-cluster/lustre/files/0014-LU-8056-o2iblnd-ib_query_device-removed-in-4.5.patch +++ b/sys-cluster/lustre/files/0002-LU-8056-o2iblnd-ib_query_device-removed-in-4.5.patch @@ -1,7 +1,7 @@ -From 53b7041eed99418ec8b2a6c3fb29eaa331accfe2 Mon Sep 17 00:00:00 2001 +From 0242d060692573dcb6f09750a62db1fa0f6d36df Mon Sep 17 00:00:00 2001 From: Li Dongyang Date: Mon, 16 May 2016 17:18:39 +1000 -Subject: [PATCH 14/19] LU-8056 o2iblnd: ib_query_device removed in 4.5 +Subject: [PATCH 2/7] LU-8056 o2iblnd: ib_query_device removed in 4.5 We should use the cached attributes in ib_device instead of calling ib_query_device since kernel 4.5 @@ -12,12 +12,12 @@ Linux-commit:cebfe5ca038e2a0f677b41e9682501708ffa2ff3 Signed-off-by: Li Dongyang Change-Id: Ie2ab681a3b508f0a1f89d3ff86bf2713b7257e62 --- - lnet/autoconf/lustre-lnet.m4 | 22 ++++++++++++++ - lnet/klnds/o2iblnd/o2iblnd.c | 69 ++++++++++++++++++++++++++++++++++++++------ - 2 files changed, 82 insertions(+), 9 deletions(-) + lnet/autoconf/lustre-lnet.m4 | 22 ++++++++++++++++++++++ + lnet/klnds/o2iblnd/o2iblnd.c | 20 ++++++++++++++++++-- + 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/lnet/autoconf/lustre-lnet.m4 b/lnet/autoconf/lustre-lnet.m4 -index 2e2adb2..2aefe70 100644 +index 05b47db..30ad208 100644 --- a/lnet/autoconf/lustre-lnet.m4 +++ b/lnet/autoconf/lustre-lnet.m4 @@ -460,6 +460,28 @@ AS_IF([test $ENABLEO2IB != "no"], [ @@ -50,88 +50,59 @@ index 2e2adb2..2aefe70 100644 ]) # LN_CONFIG_O2IB diff --git a/lnet/klnds/o2iblnd/o2iblnd.c b/lnet/klnds/o2iblnd/o2iblnd.c -index ada1322..5bae966 100644 +index 92254b8..b174799 100644 --- a/lnet/klnds/o2iblnd/o2iblnd.c +++ b/lnet/klnds/o2iblnd/o2iblnd.c -@@ -1562,25 +1562,70 @@ kiblnd_create_fmr_pool(kib_fmr_poolset_t *fps, kib_fmr_pool_t **pp_fpo) +@@ -1579,9 +1579,11 @@ kiblnd_create_fmr_pool(kib_fmr_poolset_t *fps, kib_fmr_pool_t **pp_fpo) kib_fmr_pool_t *fpo; int rc; +#ifndef HAVE_IB_DEVICE_ATTRS -+ dev_attr = kmalloc(sizeof(*dev_attr), GFP_KERNEL); -+ if (!dev_attr) -+ return -ENOMEM; + dev_attr = kmalloc(sizeof(*dev_attr), GFP_KERNEL); + if (!dev_attr) + return -ENOMEM; +#endif -+ + LIBCFS_CPT_ALLOC(fpo, lnet_cpt_table(), fps->fps_cpt, sizeof(*fpo)); - if (fpo == NULL) - return -ENOMEM; + if (!fpo) { +@@ -1591,12 +1593,16 @@ kiblnd_create_fmr_pool(kib_fmr_poolset_t *fps, kib_fmr_pool_t **pp_fpo) fpo->fpo_hdev = kiblnd_current_hdev(dev); -- fpo->fpo_fmr_pool = ib_create_fmr_pool(fpo->fpo_hdev->ibh_pd, ¶m); -- if (IS_ERR(fpo->fpo_fmr_pool)) { -- rc = PTR_ERR(fpo->fpo_fmr_pool); -- CERROR("Failed to create FMR pool: %d\n", rc); +#ifdef HAVE_IB_DEVICE_ATTRS + dev_attr = &fpo->fpo_hdev->ibh_ibdev->attrs; +#else -+ rc = ib_query_device(fpo->fpo_hdev->ibh_ibdev, dev_attr); -+ if (rc) { -+ CERROR("Query device failed for %s: %d\n", -+ fpo->fpo_hdev->ibh_ibdev->name, rc); -+ goto out_dev_attr; -+ } + rc = ib_query_device(fpo->fpo_hdev->ibh_ibdev, dev_attr); + if (rc) { + CERROR("Query device failed for %s: %d\n", + fpo->fpo_hdev->ibh_ibdev->name, rc); + goto out_dev_attr; + } +#endif -+ -+ /* Check for FMR or FastReg support */ -+ fpo->fpo_is_fmr = 0; -+ if (fpo->fpo_hdev->ibh_ibdev->alloc_fmr && -+ fpo->fpo_hdev->ibh_ibdev->dealloc_fmr && -+ fpo->fpo_hdev->ibh_ibdev->map_phys_fmr && -+ fpo->fpo_hdev->ibh_ibdev->unmap_fmr) { -+ LCONSOLE_INFO("Using FMR for registration\n"); -+ fpo->fpo_is_fmr = 1; -+ } else if (dev_attr->device_cap_flags & IB_DEVICE_MEM_MGT_EXTENSIONS) { -+ LCONSOLE_INFO("Using FastReg for registration\n"); -+ } else { -+ rc = -ENOSYS; -+ LCONSOLE_ERROR_MSG(rc, "IB device does not support FMRs nor FastRegs, can't register memory\n"); -+ goto out_dev_attr; -+ } -+ -+ if (fpo->fpo_is_fmr) -+ rc = kiblnd_alloc_fmr_pool(fps, fpo); -+ else -+ rc = kiblnd_alloc_freg_pool(fps, fpo); -+ if (rc) -+ goto out_fpo; -+ + + /* Check for FMR or FastReg support */ + fpo->fpo_is_fmr = 0; +@@ -1621,7 +1627,9 @@ kiblnd_create_fmr_pool(kib_fmr_poolset_t *fps, kib_fmr_pool_t **pp_fpo) + if (rc) + goto out_fpo; + +#ifndef HAVE_IB_DEVICE_ATTRS -+ kfree(dev_attr); + kfree(dev_attr); +#endif -+ fpo->fpo_deadline = cfs_time_shift(IBLND_POOL_DEADLINE); -+ fpo->fpo_owner = fps; -+ *pp_fpo = fpo; -+ -+ return 0; - - kiblnd_hdev_decref(fpo->fpo_hdev); - LIBCFS_FREE(fpo, sizeof(kib_fmr_pool_t)); - return rc; - } + fpo->fpo_deadline = cfs_time_shift(IBLND_POOL_DEADLINE); + fpo->fpo_owner = fps; + *pp_fpo = fpo; +@@ -1633,7 +1641,9 @@ out_fpo: + LIBCFS_FREE(fpo, sizeof(*fpo)); -- fpo->fpo_deadline = cfs_time_shift(IBLND_POOL_DEADLINE); -- fpo->fpo_owner = fps; -- *pp_fpo = fpo; -+out_dev_attr: + out_dev_attr: +#ifndef HAVE_IB_DEVICE_ATTRS -+ kfree(dev_attr); + kfree(dev_attr); +#endif - return 0; + return rc; } -@@ -2388,8 +2433,10 @@ kiblnd_net_init_pools(kib_net_t *net, __u32 *cpts, int ncpts) +@@ -2462,8 +2472,10 @@ kiblnd_net_init_pools(kib_net_t *net, lnet_ni_t *ni, __u32 *cpts, int ncpts) static int kiblnd_hdev_get_attr(kib_hca_dev_t *hdev) { @@ -144,7 +115,7 @@ index ada1322..5bae966 100644 /* It's safe to assume a HCA can handle a page size * matching that of the native system */ -@@ -2397,6 +2444,9 @@ kiblnd_hdev_get_attr(kib_hca_dev_t *hdev) +@@ -2471,6 +2483,9 @@ kiblnd_hdev_get_attr(kib_hca_dev_t *hdev) hdev->ibh_page_size = 1 << PAGE_SHIFT; hdev->ibh_page_mask = ~((__u64)hdev->ibh_page_size - 1); @@ -154,7 +125,7 @@ index ada1322..5bae966 100644 LIBCFS_ALLOC(attr, sizeof(*attr)); if (attr == NULL) { CERROR("Out of memory\n"); -@@ -2413,6 +2463,7 @@ kiblnd_hdev_get_attr(kib_hca_dev_t *hdev) +@@ -2487,6 +2502,7 @@ kiblnd_hdev_get_attr(kib_hca_dev_t *hdev) CERROR("Failed to query IB device: %d\n", rc); return rc; } diff --git a/sys-cluster/lustre/files/0003-LU-6215-llite-handle-locks-API-change-in-4.4-kernels.patch b/sys-cluster/lustre/files/0003-LU-6215-llite-handle-locks-API-change-in-4.4-kernels.patch deleted file mode 100644 index 4c1c668..0000000 --- a/sys-cluster/lustre/files/0003-LU-6215-llite-handle-locks-API-change-in-4.4-kernels.patch +++ /dev/null @@ -1,90 +0,0 @@ -From ffcc66dc3a0e7249ac6d5f7506c595cc69209e54 Mon Sep 17 00:00:00 2001 -From: Li Dongyang -Date: Tue, 1 Mar 2016 16:36:49 +1100 -Subject: [PATCH 03/19] LU-6215 llite: handle locks API change in 4.4+ kernels - -Since 4.4 linux kernel replaced both posix_lock_file_wait() and -flock_lock_file_wait() by introducing locks_lock_file_wait(). -This patch handles the API change. - -Linux-commit: 4f6563677ae833baad8003e14353241bc25da4fc - -Signed-off-by: Li Dongyang -Change-Id: I1b9c98c2afcad9da3fb377c3e788b12f20261e9e -Reviewed-on: http://review.whamcloud.com/18729 -Tested-by: Jenkins -Tested-by: Maloo -Reviewed-by: James Simmons -Reviewed-by: Dmitry Eremin -Reviewed-by: Oleg Drokin ---- - lustre/autoconf/lustre-core.m4 | 21 +++++++++++++++++++++ - lustre/llite/file.c | 6 ++++++ - 2 files changed, 27 insertions(+) - -diff --git a/lustre/autoconf/lustre-core.m4 b/lustre/autoconf/lustre-core.m4 -index 8ed3500..b2a4af0 100644 ---- a/lustre/autoconf/lustre-core.m4 -+++ b/lustre/autoconf/lustre-core.m4 -@@ -1991,6 +1991,24 @@ cache_head_has_hlist, [ - ]) # LC_HAVE_CACHE_HEAD_HLIST - - # -+# LC_HAVE_LOCKS_LOCK_FILE_WAIT -+# -+# 4.4 kernel have moved locks API users to -+# locks_lock_inode_wait() -+# -+AC_DEFUN([LC_HAVE_LOCKS_LOCK_FILE_WAIT], [ -+LB_CHECK_COMPILE([if 'locks_lock_file_wait' exists], -+locks_lock_file_wait, [ -+ #include -+],[ -+ locks_lock_file_wait(NULL, NULL); -+],[ -+ AC_DEFINE(HAVE_LOCKS_LOCK_FILE_WAIT, 1, -+ [kernel has locks_lock_file_wait]) -+]) -+]) # LC_HAVE_LOCKS_LOCK_FILE_WAIT -+ -+# - # LC_PROG_LINUX - # - # Lustre linux kernel checks -@@ -2154,6 +2172,9 @@ AC_DEFUN([LC_PROG_LINUX], [ - # 4.3 - LC_HAVE_CACHE_HEAD_HLIST - -+ # 4.4 -+ LC_HAVE_LOCKS_LOCK_FILE_WAIT -+ - # - AS_IF([test "x$enable_server" != xno], [ - LC_FUNC_DEV_SET_RDONLY -diff --git a/lustre/llite/file.c b/lustre/llite/file.c -index 8e6afbd..d1819c6 100644 ---- a/lustre/llite/file.c -+++ b/lustre/llite/file.c -@@ -2918,6 +2918,11 @@ ll_file_flock(struct file *file, int cmd, struct file_lock *file_lock) - if (!(flags & LDLM_FL_TEST_LOCK)) - file_lock->fl_type = fl_type; - -+#ifdef HAVE_LOCKS_LOCK_FILE_WAIT -+ if ((rc == 0 || file_lock->fl_type == F_UNLCK) && -+ !(flags & LDLM_FL_TEST_LOCK)) -+ rc2 = locks_lock_file_wait(file, file_lock); -+#else - if ((file_lock->fl_flags & FL_FLOCK) && - (rc == 0 || file_lock->fl_type == F_UNLCK)) - rc2 = flock_lock_file_wait(file, file_lock); -@@ -2925,6 +2930,7 @@ ll_file_flock(struct file *file, int cmd, struct file_lock *file_lock) - (rc == 0 || file_lock->fl_type == F_UNLCK) && - !(flags & LDLM_FL_TEST_LOCK)) - rc2 = posix_lock_file_wait(file, file_lock); -+#endif /* HAVE_LOCKS_LOCK_FILE_WAIT */ - - if (rc2 && file_lock->fl_type != F_UNLCK) { - einfo.ei_mode = LCK_NL; --- -2.8.2 - diff --git a/sys-cluster/lustre/files/0015-LU-8056-socklnd-NETIF_F_ALL_CSUM-renamed-to-NETIF_F_.patch b/sys-cluster/lustre/files/0003-LU-8056-socklnd-NETIF_F_ALL_CSUM-renamed-to-NETIF_F_.patch similarity index 84% rename from sys-cluster/lustre/files/0015-LU-8056-socklnd-NETIF_F_ALL_CSUM-renamed-to-NETIF_F_.patch rename to sys-cluster/lustre/files/0003-LU-8056-socklnd-NETIF_F_ALL_CSUM-renamed-to-NETIF_F_.patch index f39059c..756c911 100644 --- a/sys-cluster/lustre/files/0015-LU-8056-socklnd-NETIF_F_ALL_CSUM-renamed-to-NETIF_F_.patch +++ b/sys-cluster/lustre/files/0003-LU-8056-socklnd-NETIF_F_ALL_CSUM-renamed-to-NETIF_F_.patch @@ -1,7 +1,7 @@ -From ed100a806582374d95a7ef5d714d28276bffe9dc Mon Sep 17 00:00:00 2001 +From 6c3f19ba5b6db287980241e4d20be9ac5d0c1293 Mon Sep 17 00:00:00 2001 From: Li Dongyang Date: Mon, 16 May 2016 17:27:23 +1000 -Subject: [PATCH 15/19] LU-8056 socklnd: NETIF_F_ALL_CSUM renamed to +Subject: [PATCH 3/7] LU-8056 socklnd: NETIF_F_ALL_CSUM renamed to NETIF_F_CSUM_MASK In kernel 4.5 NETIF_F_CSUM_MASK got renamed to NETIF_F_CSUM_MASK. @@ -17,7 +17,7 @@ Change-Id: Id57505eeca613303c584d3cf74284920a837bb43 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lnet/klnds/socklnd/socklnd.h b/lnet/klnds/socklnd/socklnd.h -index 4065ef3..ad04fb5 100644 +index f02003a..54794c0 100644 --- a/lnet/klnds/socklnd/socklnd.h +++ b/lnet/klnds/socklnd/socklnd.h @@ -66,6 +66,10 @@ @@ -32,10 +32,10 @@ index 4065ef3..ad04fb5 100644 #define SOCKNAL_NSCHEDS 3 #define SOCKNAL_NSCHEDS_HIGH (SOCKNAL_NSCHEDS << 1) diff --git a/lnet/klnds/socklnd/socklnd_lib.c b/lnet/klnds/socklnd/socklnd_lib.c -index f270fa7..a672791 100644 +index 9dca0e4..e26db71 100644 --- a/lnet/klnds/socklnd/socklnd_lib.c +++ b/lnet/klnds/socklnd/socklnd_lib.c -@@ -377,7 +377,7 @@ ksocknal_lib_zc_capable(ksock_conn_t *conn) +@@ -71,7 +71,7 @@ ksocknal_lib_zc_capable(ksock_conn_t *conn) /* ZC if the socket supports scatter/gather and doesn't need software * checksums */ diff --git a/sys-cluster/lustre/files/0004-LU-6215-llite-make_request_fn-returns-blk_qc_t-in-ke.patch b/sys-cluster/lustre/files/0004-LU-6215-llite-make_request_fn-returns-blk_qc_t-in-ke.patch deleted file mode 100644 index 3be9aef..0000000 --- a/sys-cluster/lustre/files/0004-LU-6215-llite-make_request_fn-returns-blk_qc_t-in-ke.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 7d62fb54e3faec60e86135d75cc6349cf626a46b Mon Sep 17 00:00:00 2001 -From: Li Dongyang -Date: Tue, 1 Mar 2016 16:53:49 +1100 -Subject: [PATCH 04/19] LU-6215 llite: make_request_fn returns blk_qc_t in - kernel 4.4 - -For the 4.4 kernel request_queue.make_request_fn is defined as -a function returns blk_qc_t. loop_make_request() should return -BLK_QC_T_NONE in this case. - -Linux-commit: dece16353ef47d8d33f5302bc158072a9d65e26f - -Signed-off-by: Li Dongyang -Change-Id: I20a796caf6d8e6411f084db2392683c12307a0bf -Reviewed-on: http://review.whamcloud.com/18730 -Tested-by: Jenkins -Tested-by: Maloo -Reviewed-by: James Simmons -Reviewed-by: Dmitry Eremin -Reviewed-by: Lai Siyao -Reviewed-by: Oleg Drokin ---- - lustre/autoconf/lustre-core.m4 | 21 +++++++++++++++++++++ - lustre/include/lustre_compat.h | 15 ++++++++++----- - 2 files changed, 31 insertions(+), 5 deletions(-) - -diff --git a/lustre/autoconf/lustre-core.m4 b/lustre/autoconf/lustre-core.m4 -index b2a4af0..0201a28 100644 ---- a/lustre/autoconf/lustre-core.m4 -+++ b/lustre/autoconf/lustre-core.m4 -@@ -2009,6 +2009,26 @@ locks_lock_file_wait, [ - ]) # LC_HAVE_LOCKS_LOCK_FILE_WAIT - - # -+# LC_HAVE_QC_MAKE_REQUEST_FN -+# -+# 4.4 request_queue.make_request_fn defined as function returns with blk_qc_t -+# see kernel commit dece16353ef47d8d33f5302bc158072a9d65e26f -+# -+AC_DEFUN([LC_HAVE_QC_MAKE_REQUEST_FN], [ -+LB_CHECK_COMPILE([if 'request_queue.make_request_fn' returns blk_qc_t], -+make_request_fn_blk_qc_t, [ -+ #include -+],[ -+ blk_qc_t ret; -+ make_request_fn *mrf; -+ ret = mrf(NULL, NULL); -+],[ -+ AC_DEFINE(HAVE_QC_MAKE_REQUEST_FN, 1, -+ [request_queue.make_request_fn returns blk_qc_t]) -+]) -+]) # LC_HAVE_QC_MAKE_REQUEST_FN -+ -+# - # LC_PROG_LINUX - # - # Lustre linux kernel checks -@@ -2174,6 +2194,7 @@ AC_DEFUN([LC_PROG_LINUX], [ - - # 4.4 - LC_HAVE_LOCKS_LOCK_FILE_WAIT -+ LC_HAVE_QC_MAKE_REQUEST_FN - - # - AS_IF([test "x$enable_server" != xno], [ -diff --git a/lustre/include/lustre_compat.h b/lustre/include/lustre_compat.h -index c038aa1..4e9f3ac 100644 ---- a/lustre/include/lustre_compat.h -+++ b/lustre/include/lustre_compat.h -@@ -298,12 +298,17 @@ static inline int ll_namei_to_lookup_intent_flag(int flag) - return flag; - } - --#ifdef HAVE_VOID_MAKE_REQUEST_FN --# define ll_mrf_ret void --# define LL_MRF_RETURN(rc) -+#ifdef HAVE_QC_MAKE_REQUEST_FN -+# define ll_mrf_ret blk_qc_t -+# define LL_MRF_RETURN(rc) RETURN(BLK_QC_T_NONE) - #else --# define ll_mrf_ret int --# define LL_MRF_RETURN(rc) RETURN(rc) -+# ifdef HAVE_VOID_MAKE_REQUEST_FN -+# define ll_mrf_ret void -+# define LL_MRF_RETURN(rc) -+# else -+# define ll_mrf_ret int -+# define LL_MRF_RETURN(rc) RETURN(rc) -+# endif - #endif - - #include --- -2.8.2 - diff --git a/sys-cluster/lustre/files/0016-LU-8056-llite-use-inode_lock-to-access-i_mutex.patch b/sys-cluster/lustre/files/0004-LU-8056-llite-use-inode_lock-to-access-i_mutex.patch similarity index 82% rename from sys-cluster/lustre/files/0016-LU-8056-llite-use-inode_lock-to-access-i_mutex.patch rename to sys-cluster/lustre/files/0004-LU-8056-llite-use-inode_lock-to-access-i_mutex.patch index 7ed56fe..e0aab10 100644 --- a/sys-cluster/lustre/files/0016-LU-8056-llite-use-inode_lock-to-access-i_mutex.patch +++ b/sys-cluster/lustre/files/0004-LU-8056-llite-use-inode_lock-to-access-i_mutex.patch @@ -1,7 +1,7 @@ -From 917e3d42d9fe0584c740584db5c5f59cf6875c9f Mon Sep 17 00:00:00 2001 +From ab0006e3a3bf5b0ff63f0914a9e7246dfa1729f8 Mon Sep 17 00:00:00 2001 From: Li Dongyang Date: Mon, 16 May 2016 17:40:55 +1000 -Subject: [PATCH 16/19] LU-8056 llite: use inode_lock to access i_mutex +Subject: [PATCH 4/7] LU-8056 llite: use inode_lock to access i_mutex Linux kernel 4.5 introduced wrappers for i_mutex as the type of i_mutex will be changed in the future. @@ -22,7 +22,7 @@ Change-Id: Ia4c30443cddfaa5232e1dc1519c33c97dba2a271 lustre/include/lustre_compat.h | 6 ++++++ lustre/include/lvfs.h | 4 ++-- lustre/llite/dir.c | 4 ++-- - lustre/llite/file.c | 29 +++++++++++++++++++---------- + lustre/llite/file.c | 20 ++++++++++---------- lustre/llite/llite_internal.h | 2 -- lustre/llite/llite_lib.c | 8 ++++---- lustre/llite/llite_nfs.c | 4 ++-- @@ -30,13 +30,13 @@ Change-Id: Ia4c30443cddfaa5232e1dc1519c33c97dba2a271 lustre/llite/rw26.c | 4 ++-- lustre/llite/vvp_io.c | 4 ++-- lustre/llite/vvp_page.c | 4 ++-- - 12 files changed, 63 insertions(+), 30 deletions(-) + 12 files changed, 54 insertions(+), 30 deletions(-) diff --git a/lustre/autoconf/lustre-core.m4 b/lustre/autoconf/lustre-core.m4 -index 9497cdd..622345f 100644 +index 0d5c599..5554490 100644 --- a/lustre/autoconf/lustre-core.m4 +++ b/lustre/autoconf/lustre-core.m4 -@@ -2045,6 +2045,23 @@ key_payload_data_array, [ +@@ -2087,6 +2087,23 @@ key_payload_data_array, [ ]) #LC_HAVE_KEY_PAYLOAD_DATA_ARRAY # @@ -60,7 +60,7 @@ index 9497cdd..622345f 100644 # LC_PROG_LINUX # # Lustre linux kernel checks -@@ -2213,6 +2230,9 @@ AC_DEFUN([LC_PROG_LINUX], [ +@@ -2259,6 +2276,9 @@ AC_DEFUN([LC_PROG_LINUX], [ LC_HAVE_QC_MAKE_REQUEST_FN LC_HAVE_KEY_PAYLOAD_DATA_ARRAY @@ -71,10 +71,10 @@ index 9497cdd..622345f 100644 AS_IF([test "x$enable_server" != xno], [ LC_FUNC_DEV_SET_RDONLY diff --git a/lustre/include/lustre_compat.h b/lustre/include/lustre_compat.h -index 4e9f3ac..2a5a2fd 100644 +index d777993..0d303f2 100644 --- a/lustre/include/lustre_compat.h +++ b/lustre/include/lustre_compat.h -@@ -370,6 +370,12 @@ static inline struct dentry *d_make_root(struct inode *root) +@@ -371,6 +371,12 @@ static inline struct dentry *d_make_root(struct inode *root) #define ll_vfs_unlink(a, b) vfs_unlink(a, b) #endif @@ -104,10 +104,10 @@ index be4187f..2bdee77 100644 if (IS_ERR(dchild) || dchild->d_inode == NULL) return dchild; diff --git a/lustre/llite/dir.c b/lustre/llite/dir.c -index 4f28145..f657725 100644 +index ec71a19..1f6e02c 100644 --- a/lustre/llite/dir.c +++ b/lustre/llite/dir.c -@@ -1736,7 +1736,7 @@ static loff_t ll_dir_seek(struct file *file, loff_t offset, int origin) +@@ -1733,7 +1733,7 @@ static loff_t ll_dir_seek(struct file *file, loff_t offset, int origin) loff_t ret = -EINVAL; ENTRY; @@ -116,7 +116,7 @@ index 4f28145..f657725 100644 switch (origin) { case SEEK_SET: break; -@@ -1774,7 +1774,7 @@ static loff_t ll_dir_seek(struct file *file, loff_t offset, int origin) +@@ -1771,7 +1771,7 @@ static loff_t ll_dir_seek(struct file *file, loff_t offset, int origin) GOTO(out, ret); out: @@ -126,10 +126,10 @@ index 4f28145..f657725 100644 } diff --git a/lustre/llite/file.c b/lustre/llite/file.c -index d1819c6..b8670c7 100644 +index cfc01f4..f381d26 100644 --- a/lustre/llite/file.c +++ b/lustre/llite/file.c -@@ -2144,13 +2144,13 @@ static int ll_hsm_import(struct inode *inode, struct file *file, +@@ -2162,13 +2162,13 @@ static int ll_hsm_import(struct inode *inode, struct file *file, ATTR_MTIME | ATTR_MTIME_SET | ATTR_ATIME | ATTR_ATIME_SET; @@ -145,7 +145,7 @@ index d1819c6..b8670c7 100644 out: if (hss != NULL) -@@ -2197,9 +2197,9 @@ static int ll_file_futimes_3(struct file *file, const struct ll_futimes_3 *lfu) +@@ -2215,9 +2215,9 @@ static int ll_file_futimes_3(struct file *file, const struct ll_futimes_3 *lfu) if (!S_ISREG(inode->i_mode)) RETURN(-EINVAL); @@ -157,7 +157,7 @@ index d1819c6..b8670c7 100644 RETURN(rc); } -@@ -2598,9 +2598,9 @@ generic_file_llseek_size(struct file *file, loff_t offset, int origin, +@@ -2715,9 +2715,9 @@ generic_file_llseek_size(struct file *file, loff_t offset, int origin, * SEEK_CURs. Note that parallel writes and reads behave * like SEEK_SET. */ @@ -169,7 +169,7 @@ index d1819c6..b8670c7 100644 return offset; case SEEK_DATA: /* -@@ -2758,7 +2758,7 @@ int ll_fsync(struct file *file, struct dentry *dentry, int datasync) +@@ -2875,7 +2875,7 @@ int ll_fsync(struct file *file, struct dentry *dentry, int datasync) #ifdef HAVE_FILE_FSYNC_4ARGS rc = filemap_write_and_wait_range(inode->i_mapping, start, end); @@ -178,7 +178,7 @@ index d1819c6..b8670c7 100644 #else /* fsync's caller has already called _fdata{sync,write}, we want * that IO to finish before calling the osc and mdc sync methods */ -@@ -2796,7 +2796,7 @@ int ll_fsync(struct file *file, struct dentry *dentry, int datasync) +@@ -2913,7 +2913,7 @@ int ll_fsync(struct file *file, struct dentry *dentry, int datasync) } #ifdef HAVE_FILE_FSYNC_4ARGS @@ -187,38 +187,29 @@ index d1819c6..b8670c7 100644 #endif RETURN(rc); } -@@ -3021,7 +3021,15 @@ int ll_migrate(struct inode *parent, struct file *file, int mdtidx, - if (child_inode == NULL) - GOTO(out_free, rc = -EINVAL); +@@ -3146,7 +3146,7 @@ int ll_migrate(struct inode *parent, struct file *file, int mdtidx, + if (child_inode == parent->i_sb->s_root->d_inode) + GOTO(out_iput, rc = -EINVAL); - mutex_lock(&child_inode->i_mutex); -+ /* -+ * lfs migrate command needs to be blocked on the client -+ * by checking the migrate FID against the FID of the -+ * filesystem root. -+ */ -+ if (child_inode == parent->i_sb->s_root->d_inode) -+ GOTO(out_iput, rc = -EINVAL); -+ + inode_lock(child_inode); op_data->op_fid3 = *ll_inode2fid(child_inode); if (!fid_is_sane(&op_data->op_fid3)) { CERROR("%s: migrate %s, but FID "DFID" is insane\n", -@@ -3099,7 +3107,8 @@ out_close: +@@ -3224,7 +3224,7 @@ out_close: if (rc == 0) clear_nlink(child_inode); out_unlock: - mutex_unlock(&child_inode->i_mutex); + inode_unlock(child_inode); -+out_iput: + out_iput: iput(child_inode); out_free: - ll_finish_md_op_data(op_data); diff --git a/lustre/llite/llite_internal.h b/lustre/llite/llite_internal.h -index adbf9d3..94c8045 100644 +index 20956f4..9c9979e 100644 --- a/lustre/llite/llite_internal.h +++ b/lustre/llite/llite_internal.h -@@ -681,8 +681,6 @@ struct ll_file_data { +@@ -693,8 +693,6 @@ struct ll_file_data { struct list_head fd_lccs; /* list of ll_cl_context */ }; @@ -228,10 +219,10 @@ index adbf9d3..94c8045 100644 static inline struct inode *ll_info2i(struct ll_inode_info *lli) diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c -index d1050d4..bf80506 100644 +index c488fc2..9a8c69b 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c -@@ -1521,10 +1521,10 @@ static int ll_md_setattr(struct dentry *dentry, struct md_op_data *op_data) +@@ -1545,10 +1545,10 @@ static int ll_md_setattr(struct dentry *dentry, struct md_op_data *op_data) * cache is not cleared yet. */ op_data->op_attr.ia_valid &= ~(TIMES_SET_FLAGS | ATTR_SIZE); if (S_ISREG(inode->i_mode)) @@ -244,7 +235,7 @@ index d1050d4..bf80506 100644 op_data->op_attr.ia_valid = ia_valid; rc = ll_update_inode(inode, &md); -@@ -1613,7 +1613,7 @@ int ll_setattr_raw(struct dentry *dentry, struct iattr *attr, bool hsm_import) +@@ -1637,7 +1637,7 @@ int ll_setattr_raw(struct dentry *dentry, struct iattr *attr, bool hsm_import) if (S_ISREG(inode->i_mode)) { if (attr->ia_valid & ATTR_SIZE) inode_dio_write_done(inode); @@ -253,7 +244,7 @@ index d1050d4..bf80506 100644 } /* We always do an MDS RPC, even if we're only changing the size; -@@ -1690,7 +1690,7 @@ out: +@@ -1714,7 +1714,7 @@ out: ll_finish_md_op_data(op_data); if (S_ISREG(inode->i_mode)) { @@ -283,7 +274,7 @@ index 9e19e78..bc238f5 100644 if (!rc && !lgd.lgd_found) rc = -ENOENT; diff --git a/lustre/llite/lloop.c b/lustre/llite/lloop.c -index f3b9288..c20df96 100644 +index b8ae0b5..64318ca 100644 --- a/lustre/llite/lloop.c +++ b/lustre/llite/lloop.c @@ -277,9 +277,9 @@ static int do_bio_lustrebacked(struct lloop_device *lo, struct bio *head) @@ -299,10 +290,10 @@ index f3b9288..c20df96 100644 return (bytes == pvec->ldp_size) ? 0 : (int)bytes; } diff --git a/lustre/llite/rw26.c b/lustre/llite/rw26.c -index b362532..ad692db 100644 +index d9482b2..3f02754 100644 --- a/lustre/llite/rw26.c +++ b/lustre/llite/rw26.c -@@ -388,7 +388,7 @@ ll_direct_IO( +@@ -389,7 +389,7 @@ ll_direct_IO( * 1. Need inode mutex to operate transient pages. */ if (iov_iter_rw(iter) == READ) @@ -311,7 +302,7 @@ index b362532..ad692db 100644 while (iov_iter_count(iter)) { struct page **pages; -@@ -439,7 +439,7 @@ ll_direct_IO( +@@ -440,7 +440,7 @@ ll_direct_IO( } out: if (iov_iter_rw(iter) == READ) @@ -321,10 +312,10 @@ index b362532..ad692db 100644 if (tot_bytes > 0) { struct vvp_io *vio = vvp_env_io(env); diff --git a/lustre/llite/vvp_io.c b/lustre/llite/vvp_io.c -index cbc4997..8dc657b 100644 +index 8a81b83..a48a0b0 100644 --- a/lustre/llite/vvp_io.c +++ b/lustre/llite/vvp_io.c -@@ -736,7 +736,7 @@ static int vvp_io_setattr_start(const struct lu_env *env, +@@ -661,7 +661,7 @@ static int vvp_io_setattr_start(const struct lu_env *env, struct inode *inode = vvp_object_inode(io->ci_obj); struct ll_inode_info *lli = ll_i2info(inode); @@ -333,7 +324,7 @@ index cbc4997..8dc657b 100644 if (cl_io_is_trunc(io)) { down_write(&lli->lli_trunc_sem); inode_dio_wait(inode); -@@ -762,7 +762,7 @@ static void vvp_io_setattr_end(const struct lu_env *env, +@@ -687,7 +687,7 @@ static void vvp_io_setattr_end(const struct lu_env *env, inode_dio_write_done(inode); up_write(&lli->lli_trunc_sem); } diff --git a/sys-cluster/lustre/files/0005-LU-6215-gss-key-payload.data-is-an-array-in-4.4-kern.patch b/sys-cluster/lustre/files/0005-LU-6215-gss-key-payload.data-is-an-array-in-4.4-kern.patch deleted file mode 100644 index a21f41b..0000000 --- a/sys-cluster/lustre/files/0005-LU-6215-gss-key-payload.data-is-an-array-in-4.4-kern.patch +++ /dev/null @@ -1,229 +0,0 @@ -From fba216ef655a9c13f5bac27d5911da2e6745ea3d Mon Sep 17 00:00:00 2001 -From: Li Dongyang -Date: Thu, 21 Apr 2016 10:25:28 -0400 -Subject: [PATCH 05/19] LU-6215 gss: key->payload.data is an array in 4.4+ - kernels - -Kernel 4.4 merged the type-specific data with the payload data -for keys, as a result, payload.data is now an array. -This patch handles the code change. - -Linux-commit: 146aa8b1453bd8f1ff2304ffb71b4ee0eb9acdcc - -Signed-off-by: Li Dongyang -Signed-off-by: James Simmons -Change-Id: I1036ab927514f0efa073d9f0136e299be8950461 -Reviewed-on: http://review.whamcloud.com/18731 -Reviewed-by: Dmitry Eremin -Tested-by: Jenkins -Tested-by: Maloo -Reviewed-by: Sebastien Buisson -Reviewed-by: Oleg Drokin ---- - lustre/autoconf/lustre-core.m4 | 17 +++++++++++ - lustre/ptlrpc/gss/gss_keyring.c | 67 ++++++++++++++++++++++++++++++++--------- - 2 files changed, 69 insertions(+), 15 deletions(-) - -diff --git a/lustre/autoconf/lustre-core.m4 b/lustre/autoconf/lustre-core.m4 -index 0201a28..9497cdd 100644 ---- a/lustre/autoconf/lustre-core.m4 -+++ b/lustre/autoconf/lustre-core.m4 -@@ -2029,6 +2029,22 @@ make_request_fn_blk_qc_t, [ - ]) # LC_HAVE_QC_MAKE_REQUEST_FN - - # -+# LC_HAVE_KEY_PAYLOAD_DATA_ARRAY -+# -+# 4.4 kernel merged type-specific data with the payload data for keys -+# -+AC_DEFUN([LC_HAVE_KEY_PAYLOAD_DATA_ARRAY], [ -+LB_CHECK_COMPILE([if 'struct key' has 'payload.data' as an array], -+key_payload_data_array, [ -+ #include -+],[ -+ ((struct key *)0)->payload.data[0] = NULL; -+],[ -+ AC_DEFINE(HAVE_KEY_PAYLOAD_DATA_ARRAY, 1, [payload.data is an array]) -+]) -+]) #LC_HAVE_KEY_PAYLOAD_DATA_ARRAY -+ -+# - # LC_PROG_LINUX - # - # Lustre linux kernel checks -@@ -2195,6 +2211,7 @@ AC_DEFUN([LC_PROG_LINUX], [ - # 4.4 - LC_HAVE_LOCKS_LOCK_FILE_WAIT - LC_HAVE_QC_MAKE_REQUEST_FN -+ LC_HAVE_KEY_PAYLOAD_DATA_ARRAY - - # - AS_IF([test "x$enable_server" != xno], [ -diff --git a/lustre/ptlrpc/gss/gss_keyring.c b/lustre/ptlrpc/gss/gss_keyring.c -index 67188f5..e8fbe50 100644 ---- a/lustre/ptlrpc/gss/gss_keyring.c -+++ b/lustre/ptlrpc/gss/gss_keyring.c -@@ -348,6 +348,43 @@ static int ctx_unlist_kr(struct ptlrpc_cli_ctx *ctx, int locked) - } - - /* -+ * Get specific payload. Newer kernels support 4 slots. -+ */ -+static void * -+key_get_payload(struct key *key, unsigned int index) -+{ -+ void *key_ptr = NULL; -+ -+#ifdef HAVE_KEY_PAYLOAD_DATA_ARRAY -+ key_ptr = key->payload.data[index]; -+#else -+ if (!index) -+ key_ptr = key->payload.data; -+#endif -+ return key_ptr; -+} -+ -+/* -+ * Set specific payload. Newer kernels support 4 slots. -+ */ -+static int key_set_payload(struct key *key, unsigned int index, -+ struct ptlrpc_cli_ctx *ctx) -+{ -+ int rc = -EINVAL; -+ -+#ifdef HAVE_KEY_PAYLOAD_DATA_ARRAY -+ if (index < 4) { -+ key->payload.data[index] = ctx; -+#else -+ if (!index) { -+ key->payload.data = ctx; -+#endif -+ rc = 0; -+ } -+ return rc; -+} -+ -+/* - * bind a key with a ctx together. - * caller must hold write lock of the key, as well as ref on key & ctx. - */ -@@ -356,13 +393,13 @@ static void bind_key_ctx(struct key *key, struct ptlrpc_cli_ctx *ctx) - LASSERT(atomic_read(&ctx->cc_refcount) > 0); - LASSERT(atomic_read(&key->usage) > 0); - LASSERT(ctx2gctx_keyring(ctx)->gck_key == NULL); -- LASSERT(key->payload.data == NULL); -+ LASSERT(!key_get_payload(key, 0)); - - /* at this time context may or may not in list. */ - key_get(key); - atomic_inc(&ctx->cc_refcount); - ctx2gctx_keyring(ctx)->gck_key = key; -- key->payload.data = ctx; -+ LASSERT(!key_set_payload(key, 0, ctx)); - } - - /* -@@ -371,13 +408,13 @@ static void bind_key_ctx(struct key *key, struct ptlrpc_cli_ctx *ctx) - */ - static void unbind_key_ctx(struct key *key, struct ptlrpc_cli_ctx *ctx) - { -- LASSERT(key->payload.data == ctx); -+ LASSERT(key_get_payload(key, 0) == ctx); - LASSERT(test_bit(PTLRPC_CTX_CACHED_BIT, &ctx->cc_flags) == 0); - - /* must revoke the key, or others may treat it as newly created */ - key_revoke_locked(key); - -- key->payload.data = NULL; -+ key_set_payload(key, 0, NULL); - ctx2gctx_keyring(ctx)->gck_key = NULL; - - /* once ctx get split from key, the timer is meaningless */ -@@ -397,7 +434,7 @@ static void unbind_ctx_kr(struct ptlrpc_cli_ctx *ctx) - struct key *key = ctx2gctx_keyring(ctx)->gck_key; - - if (key) { -- LASSERT(key->payload.data == ctx); -+ LASSERT(key_get_payload(key, 0) == ctx); - - key_get(key); - down_write(&key->sem); -@@ -413,7 +450,7 @@ static void unbind_ctx_kr(struct ptlrpc_cli_ctx *ctx) - */ - static void unbind_key_locked(struct key *key) - { -- struct ptlrpc_cli_ctx *ctx = key->payload.data; -+ struct ptlrpc_cli_ctx *ctx = key_get_payload(key, 0); - - if (ctx) - unbind_key_ctx(key, ctx); -@@ -434,7 +471,7 @@ static void kill_ctx_kr(struct ptlrpc_cli_ctx *ctx) - */ - static void kill_key_locked(struct key *key) - { -- struct ptlrpc_cli_ctx *ctx = key->payload.data; -+ struct ptlrpc_cli_ctx *ctx = key_get_payload(key, 0); - - if (ctx && ctx_unlist_kr(ctx, 0)) - unbind_key_locked(key); -@@ -799,9 +836,8 @@ struct ptlrpc_cli_ctx * gss_sec_lookup_ctx_kr(struct ptlrpc_sec *sec, - * need wirtelock of key->sem to serialize them. */ - down_write(&key->sem); - -- if (likely(key->payload.data != NULL)) { -- ctx = key->payload.data; -- -+ ctx = key_get_payload(key, 0); -+ if (likely(ctx)) { - LASSERT(atomic_read(&ctx->cc_refcount) >= 1); - LASSERT(ctx2gctx_keyring(ctx)->gck_key == key); - LASSERT(atomic_read(&key->usage) >= 2); -@@ -1167,7 +1203,7 @@ int sec_install_rctx_kr(struct ptlrpc_sec *sec, - - down_write(&key->sem); - -- LASSERT(key->payload.data == NULL); -+ LASSERT(!key_get_payload(key, 0)); - - cli_ctx = ctx_create_kr(sec, &vcred); - if (cli_ctx == NULL) { -@@ -1251,7 +1287,7 @@ int gss_kt_instantiate(struct key *key, const void *data, size_t datalen) - RETURN(-EINVAL); - } - -- if (key->payload.data != NULL) { -+ if (key_get_payload(key, 0)) { - CERROR("key already have payload\n"); - RETURN(-EINVAL); - } -@@ -1278,7 +1314,8 @@ int gss_kt_instantiate(struct key *key, const void *data, size_t datalen) - RETURN(rc); - } - -- CDEBUG(D_SEC, "key %p instantiated, ctx %p\n", key, key->payload.data); -+ CDEBUG(D_SEC, "key %p instantiated, ctx %p\n", key, -+ key_get_payload(key, 0)); - RETURN(0); - } - -@@ -1297,7 +1334,7 @@ int gss_kt_update(struct key *key, const void *data, size_t datalen) - { - __u32 datalen32 = (__u32) datalen; - #endif -- struct ptlrpc_cli_ctx *ctx = key->payload.data; -+ struct ptlrpc_cli_ctx *ctx = key_get_payload(key, 0); - struct gss_cli_ctx *gctx; - rawobj_t tmpobj = RAWOBJ_EMPTY; - int rc; -@@ -1442,7 +1479,7 @@ static - void gss_kt_destroy(struct key *key) - { - ENTRY; -- LASSERT(key->payload.data == NULL); -+ LASSERT(!key_get_payload(key, 0)); - CDEBUG(D_SEC, "destroy key %p\n", key); - EXIT; - } --- -2.8.2 - diff --git a/sys-cluster/lustre/files/0017-LU-8056-llite-inode_operations-interface-changed-in-.patch b/sys-cluster/lustre/files/0005-LU-8056-llite-inode_operations-interface-changed-in-.patch similarity index 92% rename from sys-cluster/lustre/files/0017-LU-8056-llite-inode_operations-interface-changed-in-.patch rename to sys-cluster/lustre/files/0005-LU-8056-llite-inode_operations-interface-changed-in-.patch index 1c574f6..11f2de4 100644 --- a/sys-cluster/lustre/files/0017-LU-8056-llite-inode_operations-interface-changed-in-.patch +++ b/sys-cluster/lustre/files/0005-LU-8056-llite-inode_operations-interface-changed-in-.patch @@ -1,8 +1,7 @@ -From 4780e65730a868432c4be7c6ea635496c725fc3a Mon Sep 17 00:00:00 2001 +From 0ec0c36d7a0ec5636e19eece4d5df7615f656c23 Mon Sep 17 00:00:00 2001 From: Li Dongyang Date: Mon, 16 May 2016 21:57:31 +1000 -Subject: [PATCH 17/19] LU-8056 llite: inode_operations interface changed in - 4.5 +Subject: [PATCH 5/7] LU-8056 llite: inode_operations interface changed in 4.5 Linux kernel 4.5 replaced follow_link() with get_link() while put_link() is removed. @@ -20,10 +19,10 @@ Change-Id: Ia9b8c9b855ed5ab7a428a370074b8801e34d3f99 3 files changed, 71 insertions(+), 9 deletions(-) diff --git a/lustre/autoconf/lustre-core.m4 b/lustre/autoconf/lustre-core.m4 -index 622345f..867fa51 100644 +index 5554490..ec18055 100644 --- a/lustre/autoconf/lustre-core.m4 +++ b/lustre/autoconf/lustre-core.m4 -@@ -2062,6 +2062,25 @@ inode_lock, [ +@@ -2104,6 +2104,25 @@ inode_lock, [ ]) # LC_HAVE_INODE_LOCK # @@ -49,7 +48,7 @@ index 622345f..867fa51 100644 # LC_PROG_LINUX # # Lustre linux kernel checks -@@ -2232,6 +2251,7 @@ AC_DEFUN([LC_PROG_LINUX], [ +@@ -2278,6 +2297,7 @@ AC_DEFUN([LC_PROG_LINUX], [ # 4.5 LC_HAVE_INODE_LOCK @@ -58,10 +57,10 @@ index 622345f..867fa51 100644 # AS_IF([test "x$enable_server" != xno], [ diff --git a/lustre/llite/dcache.c b/lustre/llite/dcache.c -index 4ec4421..d579ba0 100644 +index 8c3db0a..3168ca8 100644 --- a/lustre/llite/dcache.c +++ b/lustre/llite/dcache.c -@@ -368,7 +368,11 @@ static int ll_revalidate_dentry(struct dentry *dentry, +@@ -331,7 +331,11 @@ static int ll_revalidate_dentry(struct dentry *dentry, return 1; /* Symlink - always valid as long as the dentry was found */ diff --git a/sys-cluster/lustre/files/0006-LU-6215-o2iblnd-rdma_create_id-takes-extra-parameter.patch b/sys-cluster/lustre/files/0006-LU-6215-o2iblnd-rdma_create_id-takes-extra-parameter.patch deleted file mode 100644 index 3c725cc..0000000 --- a/sys-cluster/lustre/files/0006-LU-6215-o2iblnd-rdma_create_id-takes-extra-parameter.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 2d1eb63fe95584ae964e854479cabbe3f21783be Mon Sep 17 00:00:00 2001 -From: Li Dongyang -Date: Fri, 1 Apr 2016 20:26:46 -0400 -Subject: [PATCH 06/19] LU-6215 o2iblnd: rdma_create_id() takes extra parameter - -4.4 kernel added network namespace parameter to rdma_create_id(). -This patch handles the API change. - -Linux-commit: fa20105e09e97e81aadf02f722c31195e4a75c84 - -Signed-off-by: Li Dongyang -Change-Id: I3f3792e70e91ac3b3d9fefdd58cc9e7e4d1c25c6 -Reviewed-on: http://review.whamcloud.com/18759 -Reviewed-by: James Simmons -Tested-by: Jenkins -Tested-by: Maloo -Reviewed-by: Sebastien Buisson -Reviewed-by: Oleg Drokin ---- - lnet/autoconf/lustre-lnet.m4 | 44 ++++++++++++++++++++++++++++++++++++++++++++ - lnet/klnds/o2iblnd/o2iblnd.h | 13 ++++++++++--- - 2 files changed, 54 insertions(+), 3 deletions(-) - -diff --git a/lnet/autoconf/lustre-lnet.m4 b/lnet/autoconf/lustre-lnet.m4 -index 842873d..f7eb217 100644 ---- a/lnet/autoconf/lustre-lnet.m4 -+++ b/lnet/autoconf/lustre-lnet.m4 -@@ -379,6 +379,50 @@ AS_IF([test $ENABLEO2IB != "no"], [ - [struct ib_cq_init_attr is used by ib_create_cq]) - ]) - ]) -+ -+# 4.3 removed ib_alloc_fast_reg_mr() -+AS_IF([test $ENABLEO2IB != "no"], [ -+ LB_CHECK_COMPILE([if 'ib_alloc_fast_reg_mr' exists], -+ ib_alloc_fast_reg_mr, [ -+ #ifdef HAVE_COMPAT_RDMA -+ #undef PACKAGE_NAME -+ #undef PACKAGE_TARNAME -+ #undef PACKAGE_VERSION -+ #undef PACKAGE_STRING -+ #undef PACKAGE_BUGREPORT -+ #undef PACKAGE_URL -+ #include -+ #endif -+ #include -+ ],[ -+ ib_alloc_fast_reg_mr(NULL, 0); -+ ],[ -+ AC_DEFINE(HAVE_IB_ALLOC_FAST_REG_MR, 1, -+ [ib_alloc_fast_reg_mr is defined]) -+ ]) -+]) -+ -+# 4.4 added network namespace parameter for rdma_create_id() -+AS_IF([test $ENABLEO2IB != "no"], [ -+ LB_CHECK_COMPILE([if 'rdma_create_id' wants five args], -+ rdma_create_id_5args, [ -+ #ifdef HAVE_COMPAT_RDMA -+ #undef PACKAGE_NAME -+ #undef PACKAGE_TARNAME -+ #undef PACKAGE_VERSION -+ #undef PACKAGE_STRING -+ #undef PACKAGE_BUGREPORT -+ #undef PACKAGE_URL -+ #include -+ #endif -+ #include -+ ],[ -+ rdma_create_id(NULL, NULL, NULL, 0, 0); -+ ],[ -+ AC_DEFINE(HAVE_RDMA_CREATE_ID_5ARG, 1, -+ [rdma_create_id wants 5 args]) -+ ]) -+]) - ]) # LN_CONFIG_O2IB - - # -diff --git a/lnet/klnds/o2iblnd/o2iblnd.h b/lnet/klnds/o2iblnd/o2iblnd.h -index b3d9332..e69cd9f 100644 ---- a/lnet/klnds/o2iblnd/o2iblnd.h -+++ b/lnet/klnds/o2iblnd/o2iblnd.h -@@ -138,10 +138,17 @@ extern kib_tunables_t kiblnd_tunables; - IBLND_CREDIT_HIGHWATER_V1 : \ - *kiblnd_tunables.kib_peercredits_hiw) /* when eagerly to return credits */ - --#ifdef HAVE_RDMA_CREATE_ID_4ARG --#define kiblnd_rdma_create_id(cb, dev, ps, qpt) rdma_create_id(cb, dev, ps, qpt) -+#ifdef HAVE_RDMA_CREATE_ID_5ARG -+# define kiblnd_rdma_create_id(cb, dev, ps, qpt) rdma_create_id(current->nsproxy->net_ns, \ -+ cb, dev, \ -+ ps, qpt) - #else --#define kiblnd_rdma_create_id(cb, dev, ps, qpt) rdma_create_id(cb, dev, ps) -+# ifdef HAVE_RDMA_CREATE_ID_4ARG -+# define kiblnd_rdma_create_id(cb, dev, ps, qpt) rdma_create_id(cb, dev, \ -+ ps, qpt) -+# else -+# define kiblnd_rdma_create_id(cb, dev, ps, qpt) rdma_create_id(cb, dev, ps) -+# endif - #endif - - static inline int --- -2.8.2 - diff --git a/sys-cluster/lustre/files/0018-LU-8056-llite-POSIX_ACL_XATTR_-ACCESS-DEFAULT-remove.patch b/sys-cluster/lustre/files/0006-LU-8056-llite-POSIX_ACL_XATTR_-ACCESS-DEFAULT-remove.patch similarity index 91% rename from sys-cluster/lustre/files/0018-LU-8056-llite-POSIX_ACL_XATTR_-ACCESS-DEFAULT-remove.patch rename to sys-cluster/lustre/files/0006-LU-8056-llite-POSIX_ACL_XATTR_-ACCESS-DEFAULT-remove.patch index 9da787c..a564203 100644 --- a/sys-cluster/lustre/files/0018-LU-8056-llite-POSIX_ACL_XATTR_-ACCESS-DEFAULT-remove.patch +++ b/sys-cluster/lustre/files/0006-LU-8056-llite-POSIX_ACL_XATTR_-ACCESS-DEFAULT-remove.patch @@ -1,7 +1,7 @@ -From 9f0940464d87e1111ab665684f9e9a45db6c3787 Mon Sep 17 00:00:00 2001 +From 103a363fa53f691d2bdbb38280e44d1c830c7322 Mon Sep 17 00:00:00 2001 From: Li Dongyang Date: Mon, 16 May 2016 22:07:54 +1000 -Subject: [PATCH 18/19] LU-8056 llite: POSIX_ACL_XATTR_{ACCESS,DEFAULT} removed +Subject: [PATCH 6/7] LU-8056 llite: POSIX_ACL_XATTR_{ACCESS,DEFAULT} removed in 4.5 POSIX_ACL_XATTR_{ACCESS,DEFAULT} are duplicate diff --git a/sys-cluster/lustre/files/0007-LU-6215-lnet-split-struct-ib_send_wr.patch b/sys-cluster/lustre/files/0007-LU-6215-lnet-split-struct-ib_send_wr.patch deleted file mode 100644 index 1520983..0000000 --- a/sys-cluster/lustre/files/0007-LU-6215-lnet-split-struct-ib_send_wr.patch +++ /dev/null @@ -1,451 +0,0 @@ -From 6c4eae3aaac92d6d9ef35806fc7badb272702136 Mon Sep 17 00:00:00 2001 -From: Dmitry Eremin -Date: Tue, 17 May 2016 09:22:15 -0400 -Subject: [PATCH 07/19] LU-6215 lnet: split struct ib_send_wr - -In v4.4 Linux kernel split up struct ib_send_wr so that all non-trivial -verbs use their own structure which embeds struct ib_send_wr. - -Linux-commit: e622f2f4ad2142d2a613a57fb85f8cf737935ef5 -Change-Id: Iea2599ea57a576a4c061841be47a989aba097cc6 -Signed-off-by: Dmitry Eremin -Reviewed-on: http://review.whamcloud.com/19168 -Reviewed-by: Doug Oucharek -Reviewed-by: James Simmons -Reviewed-by: Li Dongyang -Tested-by: Jenkins -Tested-by: Maloo -Reviewed-by: Oleg Drokin ---- - lnet/autoconf/lustre-lnet.m4 | 84 ++++++++++++++++++-------- - lnet/klnds/o2iblnd/o2iblnd.c | 127 +++++++++++++++++++++++++++++++++++++--- - lnet/klnds/o2iblnd/o2iblnd.h | 21 ++++++- - lnet/klnds/o2iblnd/o2iblnd_cb.c | 71 ++++++++++++++-------- - 4 files changed, 246 insertions(+), 57 deletions(-) - -diff --git a/lnet/autoconf/lustre-lnet.m4 b/lnet/autoconf/lustre-lnet.m4 -index f7eb217..2e2adb2 100644 ---- a/lnet/autoconf/lustre-lnet.m4 -+++ b/lnet/autoconf/lustre-lnet.m4 -@@ -329,8 +329,8 @@ AC_SUBST(O2IBLND) - AC_SUBST(O2IBPATH) - AC_SUBST(ENABLEO2IB) - --# In RHEL 6.2, rdma_create_id() takes the queue-pair type as a fourth argument - AS_IF([test $ENABLEO2IB != "no"], [ -+ # In RHEL 6.2, rdma_create_id() takes the queue-pair type as a fourth argument - LB_CHECK_COMPILE([if 'rdma_create_id' wants four args], - rdma_create_id_4args, [ - #ifdef HAVE_COMPAT_RDMA -@@ -349,15 +349,32 @@ AS_IF([test $ENABLEO2IB != "no"], [ - AC_DEFINE(HAVE_RDMA_CREATE_ID_4ARG, 1, - [rdma_create_id wants 4 args]) - ]) --]) --# --# 4.2 introduced struct ib_cq_init_attr which is used --# by ib_create_cq(). Note some OFED stacks only keep --# their headers in sync with latest kernels but not --# the functionality which means for infiniband testing --# we need to always test functionality testings. --# --AS_IF([test $ENABLEO2IB != "no"], [ -+ -+ # 4.4 added network namespace parameter for rdma_create_id() -+ LB_CHECK_COMPILE([if 'rdma_create_id' wants five args], -+ rdma_create_id_5args, [ -+ #ifdef HAVE_COMPAT_RDMA -+ #undef PACKAGE_NAME -+ #undef PACKAGE_TARNAME -+ #undef PACKAGE_VERSION -+ #undef PACKAGE_STRING -+ #undef PACKAGE_BUGREPORT -+ #undef PACKAGE_URL -+ #include -+ #endif -+ #include -+ ],[ -+ rdma_create_id(NULL, NULL, NULL, 0, 0); -+ ],[ -+ AC_DEFINE(HAVE_RDMA_CREATE_ID_5ARG, 1, -+ [rdma_create_id wants 5 args]) -+ ]) -+ -+ # 4.2 introduced struct ib_cq_init_attr which is used -+ # by ib_create_cq(). Note some OFED stacks only keep -+ # their headers in sync with latest kernels but not -+ # the functionality which means for infiniband testing -+ # we need to always test functionality testings. - LB_CHECK_COMPILE([if 'struct ib_cq_init_attr' is used], - ib_cq_init_attr, [ - #ifdef HAVE_COMPAT_RDMA -@@ -378,10 +395,8 @@ AS_IF([test $ENABLEO2IB != "no"], [ - AC_DEFINE(HAVE_IB_CQ_INIT_ATTR, 1, - [struct ib_cq_init_attr is used by ib_create_cq]) - ]) --]) - --# 4.3 removed ib_alloc_fast_reg_mr() --AS_IF([test $ENABLEO2IB != "no"], [ -+ # 4.3 removed ib_alloc_fast_reg_mr() - LB_CHECK_COMPILE([if 'ib_alloc_fast_reg_mr' exists], - ib_alloc_fast_reg_mr, [ - #ifdef HAVE_COMPAT_RDMA -@@ -400,12 +415,13 @@ AS_IF([test $ENABLEO2IB != "no"], [ - AC_DEFINE(HAVE_IB_ALLOC_FAST_REG_MR, 1, - [ib_alloc_fast_reg_mr is defined]) - ]) --]) - --# 4.4 added network namespace parameter for rdma_create_id() --AS_IF([test $ENABLEO2IB != "no"], [ -- LB_CHECK_COMPILE([if 'rdma_create_id' wants five args], -- rdma_create_id_5args, [ -+ # In v4.4 Linux kernel, -+ # commit e622f2f4ad2142d2a613a57fb85f8cf737935ef5 -+ # split up struct ib_send_wr so that all non-trivial verbs -+ # use their own structure which embedds struct ib_send_wr. -+ LB_CHECK_COMPILE([if 'struct ib_rdma_wr' is defined], -+ ib_rdma_wr, [ - #ifdef HAVE_COMPAT_RDMA - #undef PACKAGE_NAME - #undef PACKAGE_TARNAME -@@ -415,14 +431,36 @@ AS_IF([test $ENABLEO2IB != "no"], [ - #undef PACKAGE_URL - #include - #endif -- #include -+ #include - ],[ -- rdma_create_id(NULL, NULL, NULL, 0, 0); -+ struct ib_rdma_wr *wr __attribute__ ((unused)); -+ -+ wr = rdma_wr(NULL); - ],[ -- AC_DEFINE(HAVE_RDMA_CREATE_ID_5ARG, 1, -- [rdma_create_id wants 5 args]) -+ AC_DEFINE(HAVE_IB_RDMA_WR, 1, -+ [struct ib_rdma_wr is defined]) - ]) --]) -+ -+ # new fast registration API introduced in 4.4 -+ LB_CHECK_COMPILE([if 'ib_map_mr_sg' exists], -+ ib_map_mr_sg, [ -+ #ifdef HAVE_COMPAT_RDMA -+ #undef PACKAGE_NAME -+ #undef PACKAGE_TARNAME -+ #undef PACKAGE_VERSION -+ #undef PACKAGE_STRING -+ #undef PACKAGE_BUGREPORT -+ #undef PACKAGE_URL -+ #include -+ #endif -+ #include -+ ],[ -+ ib_map_mr_sg(NULL, NULL, 0, 0); -+ ],[ -+ AC_DEFINE(HAVE_IB_MAP_MR_SG, 1, -+ [ib_map_mr_sg exists]) -+ ]) -+]) # ENABLEO2IB != "no" - ]) # LN_CONFIG_O2IB - - # -diff --git a/lnet/klnds/o2iblnd/o2iblnd.c b/lnet/klnds/o2iblnd/o2iblnd.c -index d9761ee..00c4ce2 100644 ---- a/lnet/klnds/o2iblnd/o2iblnd.c -+++ b/lnet/klnds/o2iblnd/o2iblnd.c -@@ -1592,13 +1592,126 @@ again: - fpo->fpo_map_count++; - spin_unlock(&fps->fps_lock); - -- pfmr = ib_fmr_pool_map_phys(fpo->fpo_fmr_pool, -- pages, npages, iov); -- if (likely(!IS_ERR(pfmr))) { -- fmr->fmr_pool = fpo; -- fmr->fmr_pfmr = pfmr; -- return 0; -- } -+ if (fpo->fpo_is_fmr) { -+ struct ib_pool_fmr *pfmr; -+ -+ spin_unlock(&fps->fps_lock); -+ -+ if (!tx_pages_mapped) { -+ npages = kiblnd_map_tx_pages(tx, rd); -+ tx_pages_mapped = 1; -+ } -+ -+ pfmr = ib_fmr_pool_map_phys(fpo->fmr.fpo_fmr_pool, -+ pages, npages, iov); -+ if (likely(!IS_ERR(pfmr))) { -+ fmr->fmr_key = is_rx ? pfmr->fmr->rkey -+ : pfmr->fmr->lkey; -+ fmr->fmr_frd = NULL; -+ fmr->fmr_pfmr = pfmr; -+ fmr->fmr_pool = fpo; -+ return 0; -+ } -+ rc = PTR_ERR(pfmr); -+ } else { -+ if (!list_empty(&fpo->fast_reg.fpo_pool_list)) { -+ struct kib_fast_reg_descriptor *frd; -+#ifdef HAVE_IB_MAP_MR_SG -+ struct ib_reg_wr *wr; -+ int n; -+#else -+ struct ib_rdma_wr *wr; -+ struct ib_fast_reg_page_list *frpl; -+#endif -+ struct ib_mr *mr; -+ -+ frd = list_first_entry(&fpo->fast_reg.fpo_pool_list, -+ struct kib_fast_reg_descriptor, -+ frd_list); -+ list_del(&frd->frd_list); -+ spin_unlock(&fps->fps_lock); -+ -+#ifndef HAVE_IB_MAP_MR_SG -+ frpl = frd->frd_frpl; -+#endif -+ mr = frd->frd_mr; -+ -+ if (!frd->frd_valid) { -+ struct ib_rdma_wr *inv_wr; -+ __u32 key = is_rx ? mr->rkey : mr->lkey; -+ -+ inv_wr = &frd->frd_inv_wr; -+ memset(inv_wr, 0, sizeof(*inv_wr)); -+ -+ inv_wr->wr.opcode = IB_WR_LOCAL_INV; -+ inv_wr->wr.wr_id = IBLND_WID_MR; -+ inv_wr->wr.ex.invalidate_rkey = key; -+ -+ /* Bump the key */ -+ key = ib_inc_rkey(key); -+ ib_update_fast_reg_key(mr, key); -+ } -+ -+#ifdef HAVE_IB_MAP_MR_SG -+ n = ib_map_mr_sg(mr, tx->tx_frags, -+ tx->tx_nfrags, PAGE_SIZE); -+ if (unlikely(n != tx->tx_nfrags)) { -+ CERROR("Failed to map mr %d/%d " -+ "elements\n", n, tx->tx_nfrags); -+ return n < 0 ? n : -EINVAL; -+ } -+ -+ mr->iova = iov; -+ -+ wr = &frd->frd_fastreg_wr; -+ memset(wr, 0, sizeof(*wr)); -+ -+ wr->wr.opcode = IB_WR_REG_MR; -+ wr->wr.wr_id = IBLND_WID_MR; -+ wr->wr.num_sge = 0; -+ wr->wr.send_flags = 0; -+ wr->mr = mr; -+ wr->key = is_rx ? mr->rkey : mr->lkey; -+ wr->access = (IB_ACCESS_LOCAL_WRITE | -+ IB_ACCESS_REMOTE_WRITE); -+#else -+ if (!tx_pages_mapped) { -+ npages = kiblnd_map_tx_pages(tx, rd); -+ tx_pages_mapped = 1; -+ } -+ -+ LASSERT(npages <= frpl->max_page_list_len); -+ memcpy(frpl->page_list, pages, -+ sizeof(*pages) * npages); -+ -+ /* Prepare FastReg WR */ -+ wr = &frd->frd_fastreg_wr; -+ memset(wr, 0, sizeof(*wr)); -+ -+ wr->wr.opcode = IB_WR_FAST_REG_MR; -+ wr->wr.wr_id = IBLND_WID_MR; -+ -+ wr->wr.wr.fast_reg.iova_start = iov; -+ wr->wr.wr.fast_reg.page_list = frpl; -+ wr->wr.wr.fast_reg.page_list_len = npages; -+ wr->wr.wr.fast_reg.page_shift = PAGE_SHIFT; -+ wr->wr.wr.fast_reg.length = nob; -+ wr->wr.wr.fast_reg.rkey = -+ is_rx ? mr->rkey : mr->lkey; -+ wr->wr.wr.fast_reg.access_flags = -+ (IB_ACCESS_LOCAL_WRITE | -+ IB_ACCESS_REMOTE_WRITE); -+#endif -+ -+ fmr->fmr_key = is_rx ? mr->rkey : mr->lkey; -+ fmr->fmr_frd = frd; -+ fmr->fmr_pfmr = NULL; -+ fmr->fmr_pool = fpo; -+ return 0; -+ } -+ spin_unlock(&fps->fps_lock); -+ rc = -EBUSY; -+ } - - spin_lock(&fps->fps_lock); - fpo->fpo_map_count--; -diff --git a/lnet/klnds/o2iblnd/o2iblnd.h b/lnet/klnds/o2iblnd/o2iblnd.h -index e69cd9f..3baa255 100644 ---- a/lnet/klnds/o2iblnd/o2iblnd.h -+++ b/lnet/klnds/o2iblnd/o2iblnd.h -@@ -344,6 +344,25 @@ typedef struct - cfs_time_t fps_next_retry; - } kib_fmr_poolset_t; - -+#ifndef HAVE_IB_RDMA_WR -+struct ib_rdma_wr { -+ struct ib_send_wr wr; -+}; -+#endif -+ -+struct kib_fast_reg_descriptor { /* For fast registration */ -+ struct list_head frd_list; -+ struct ib_rdma_wr frd_inv_wr; -+#ifdef HAVE_IB_MAP_MR_SG -+ struct ib_reg_wr frd_fastreg_wr; -+#else -+ struct ib_rdma_wr frd_fastreg_wr; -+ struct ib_fast_reg_page_list *frd_frpl; -+#endif -+ struct ib_mr *frd_mr; -+ bool frd_valid; -+}; -+ - typedef struct - { - struct list_head fpo_list; /* chain on pool list */ -@@ -620,7 +639,7 @@ typedef struct kib_tx /* transmit message */ - /* # send work items */ - int tx_nwrq; - /* send work items... */ -- struct ib_send_wr *tx_wrq; -+ struct ib_rdma_wr *tx_wrq; - /* ...and their memory */ - struct ib_sge *tx_sge; - /* rdma descriptor */ -diff --git a/lnet/klnds/o2iblnd/o2iblnd_cb.c b/lnet/klnds/o2iblnd/o2iblnd_cb.c -index 6887c07..d25e45a 100644 ---- a/lnet/klnds/o2iblnd/o2iblnd_cb.c -+++ b/lnet/klnds/o2iblnd/o2iblnd_cb.c -@@ -847,14 +847,27 @@ __must_hold(&conn->ibc_lock) - /* close_conn will launch failover */ - rc = -ENETDOWN; - } else { -- struct ib_send_wr *wrq = &tx->tx_wrq[tx->tx_nwrq - 1]; -+ struct kib_fast_reg_descriptor *frd = tx->fmr.fmr_frd; -+ struct ib_send_wr *bad = &tx->tx_wrq[tx->tx_nwrq - 1].wr; -+ struct ib_send_wr *wr = &tx->tx_wrq[0].wr; -+ -+ if (frd != NULL) { -+ if (!frd->frd_valid) { -+ wr = &frd->frd_inv_wr.wr; -+ wr->next = &frd->frd_fastreg_wr.wr; -+ } else { -+ wr = &frd->frd_fastreg_wr.wr; -+ } -+ frd->frd_fastreg_wr.wr.next = &tx->tx_wrq[0].wr; -+ } - - LASSERTF(wrq->wr_id == kiblnd_ptr2wreqid(tx, IBLND_WID_TX), - "bad wr_id "LPX64", opc %d, flags %d, peer: %s\n", - wrq->wr_id, wrq->opcode, wrq->send_flags, - libcfs_nid2str(conn->ibc_peer->ibp_nid)); -- wrq = NULL; -- rc = ib_post_send(conn->ibc_cmid->qp, tx->tx_wrq, &wrq); -+ -+ bad = NULL; -+ rc = ib_post_send(conn->ibc_cmid->qp, wr, &bad); - } - - conn->ibc_last_send = jiffies; -@@ -1023,11 +1036,11 @@ kiblnd_tx_complete (kib_tx_t *tx, int status) - static void - kiblnd_init_tx_msg (lnet_ni_t *ni, kib_tx_t *tx, int type, int body_nob) - { -- kib_hca_dev_t *hdev = tx->tx_pool->tpo_hdev; -- struct ib_sge *sge = &tx->tx_sge[tx->tx_nwrq]; -- struct ib_send_wr *wrq = &tx->tx_wrq[tx->tx_nwrq]; -- int nob = offsetof (kib_msg_t, ibm_u) + body_nob; -- struct ib_mr *mr = hdev->ibh_mrs; -+ kib_hca_dev_t *hdev = tx->tx_pool->tpo_hdev; -+ struct ib_sge *sge = &tx->tx_sge[tx->tx_nwrq]; -+ struct ib_rdma_wr *wrq; -+ int nob = offsetof(kib_msg_t, ibm_u) + body_nob; -+ struct ib_mr *mr = hdev->ibh_mrs; - - LASSERT(tx->tx_nwrq >= 0); - LASSERT(tx->tx_nwrq < IBLND_MAX_RDMA_FRAGS + 1); -@@ -1040,16 +1053,17 @@ kiblnd_init_tx_msg (lnet_ni_t *ni, kib_tx_t *tx, int type, int body_nob) - sge->addr = tx->tx_msgaddr; - sge->length = nob; - -- memset(wrq, 0, sizeof(*wrq)); -+ wrq = &tx->tx_wrq[tx->tx_nwrq]; -+ memset(wrq, 0, sizeof(*wrq)); - -- wrq->next = NULL; -- wrq->wr_id = kiblnd_ptr2wreqid(tx, IBLND_WID_TX); -- wrq->sg_list = sge; -- wrq->num_sge = 1; -- wrq->opcode = IB_WR_SEND; -- wrq->send_flags = IB_SEND_SIGNALED; -+ wrq->wr.next = NULL; -+ wrq->wr.wr_id = kiblnd_ptr2wreqid(tx, IBLND_WID_TX); -+ wrq->wr.sg_list = sge; -+ wrq->wr.num_sge = 1; -+ wrq->wr.opcode = IB_WR_SEND; -+ wrq->wr.send_flags = IB_SEND_SIGNALED; - -- tx->tx_nwrq++; -+ tx->tx_nwrq++; - } - - static int -@@ -1059,7 +1073,7 @@ kiblnd_init_rdma(kib_conn_t *conn, kib_tx_t *tx, int type, - kib_msg_t *ibmsg = tx->tx_msg; - kib_rdma_desc_t *srcrd = tx->tx_rd; - struct ib_sge *sge = &tx->tx_sge[0]; -- struct ib_send_wr *wrq = &tx->tx_wrq[0]; -+ struct ib_rdma_wr *wrq; - int rc = resid; - int srcidx; - int dstidx; -@@ -1106,15 +1120,20 @@ kiblnd_init_rdma(kib_conn_t *conn, kib_tx_t *tx, int type, - - wrq = &tx->tx_wrq[tx->tx_nwrq]; - -- wrq->next = wrq + 1; -- wrq->wr_id = kiblnd_ptr2wreqid(tx, IBLND_WID_RDMA); -- wrq->sg_list = sge; -- wrq->num_sge = 1; -- wrq->opcode = IB_WR_RDMA_WRITE; -- wrq->send_flags = 0; -- -- wrq->wr.rdma.remote_addr = kiblnd_rd_frag_addr(dstrd, dstidx); -- wrq->wr.rdma.rkey = kiblnd_rd_frag_key(dstrd, dstidx); -+ wrq->wr.next = &(wrq + 1)->wr; -+ wrq->wr.wr_id = kiblnd_ptr2wreqid(tx, IBLND_WID_RDMA); -+ wrq->wr.sg_list = sge; -+ wrq->wr.num_sge = 1; -+ wrq->wr.opcode = IB_WR_RDMA_WRITE; -+ wrq->wr.send_flags = 0; -+ -+#ifdef HAVE_IB_RDMA_WR -+ wrq->remote_addr = kiblnd_rd_frag_addr(dstrd, dstidx); -+ wrq->rkey = kiblnd_rd_frag_key(dstrd, dstidx); -+#else -+ wrq->wr.wr.rdma.remote_addr = kiblnd_rd_frag_addr(dstrd, dstidx); -+ wrq->wr.wr.rdma.rkey = kiblnd_rd_frag_key(dstrd, dstidx); -+#endif - - srcidx = kiblnd_rd_consume_frag(srcrd, srcidx, wrknob); - dstidx = kiblnd_rd_consume_frag(dstrd, dstidx, wrknob); --- -2.8.2 - diff --git a/sys-cluster/lustre/files/0019-LU-8056-lloop-fix-bio_for_each_segment_all-for-newer.patch b/sys-cluster/lustre/files/0007-LU-8056-lloop-fix-bio_for_each_segment_all-for-newer.patch similarity index 77% rename from sys-cluster/lustre/files/0019-LU-8056-lloop-fix-bio_for_each_segment_all-for-newer.patch rename to sys-cluster/lustre/files/0007-LU-8056-lloop-fix-bio_for_each_segment_all-for-newer.patch index a613540..656f7f6 100644 --- a/sys-cluster/lustre/files/0019-LU-8056-lloop-fix-bio_for_each_segment_all-for-newer.patch +++ b/sys-cluster/lustre/files/0007-LU-8056-lloop-fix-bio_for_each_segment_all-for-newer.patch @@ -1,7 +1,7 @@ -From 6f44b5a0d02e5a805c5be265d5b92ab69ef9a421 Mon Sep 17 00:00:00 2001 +From 028c4416216af21dcae53f7daa4f549d0c2bad4f Mon Sep 17 00:00:00 2001 From: James Simmons Date: Fri, 3 Jun 2016 14:09:54 -0400 -Subject: [PATCH 19/19] LU-8056 lloop: fix bio_for_each_segment_all for newer +Subject: [PATCH 7/7] LU-8056 lloop: fix bio_for_each_segment_all for newer kernels Lustre patch http://review.whamcloud.com/20478 back ported @@ -12,11 +12,11 @@ work with newer kernels. Change-Id: I6a926320f80113169a13d2319190721c83d58b1d Signed-off-by: James Simmons --- - lustre/llite/lloop.c | 17 ++--------------- - 1 file changed, 2 insertions(+), 15 deletions(-) + lustre/llite/lloop.c | 15 +-------------- + 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/lustre/llite/lloop.c b/lustre/llite/lloop.c -index c20df96..834d068 100644 +index 64318ca..64da8c2 100644 --- a/lustre/llite/lloop.c +++ b/lustre/llite/lloop.c @@ -193,13 +193,8 @@ static int do_bio_lustrebacked(struct lloop_device *lo, struct bio *head) @@ -33,11 +33,11 @@ index c20df96..834d068 100644 int rw; size_t page_count = 0; struct bio *bio; -@@ -226,17 +221,10 @@ static int do_bio_lustrebacked(struct lloop_device *lo, struct bio *head) +@@ -226,16 +221,9 @@ static int do_bio_lustrebacked(struct lloop_device *lo, struct bio *head) #ifdef HAVE_BVEC_ITER offset = (pgoff_t)(bio->bi_iter.bi_sector << 9) + lo->lo_offset; -- bio_for_each_segment(bvec, bio, iter) { +- bio_for_each_segment_all(bvec, bio, iter) { - BUG_ON(bvec.bv_offset != 0); - BUG_ON(bvec.bv_len != PAGE_CACHE_SIZE); - @@ -47,12 +47,10 @@ index c20df96..834d068 100644 - offset += bvec.bv_len; #else offset = (pgoff_t)(bio->bi_sector << 9) + lo->lo_offset; -- bio_for_each_segment(bvec, bio, iter) { +#endif -+ bio_for_each_segment_all(bvec, bio, iter) { + bio_for_each_segment_all(bvec, bio, iter) { BUG_ON(bvec->bv_offset != 0); BUG_ON(bvec->bv_len != PAGE_CACHE_SIZE); - @@ -244,7 +232,6 @@ static int do_bio_lustrebacked(struct lloop_device *lo, struct bio *head) offsets[page_count] = offset; page_count++; diff --git a/sys-cluster/lustre/files/0008-LU-6215-o2iblnd-ib_alloc_fast_reg_mr-removed-in-4.3.patch b/sys-cluster/lustre/files/0008-LU-6215-o2iblnd-ib_alloc_fast_reg_mr-removed-in-4.3.patch deleted file mode 100644 index 993f3b9..0000000 --- a/sys-cluster/lustre/files/0008-LU-6215-o2iblnd-ib_alloc_fast_reg_mr-removed-in-4.3.patch +++ /dev/null @@ -1,199 +0,0 @@ -From 12fe2bd8fb80b71bcbc6526f916e6225c12610ee Mon Sep 17 00:00:00 2001 -From: Li Dongyang -Date: Tue, 29 Mar 2016 14:57:57 +1100 -Subject: [PATCH 08/19] LU-6215 o2iblnd: ib_alloc_fast_reg_mr() removed in 4.3 - -ib_alloc_fast_reg_mr() is replaced by a more generic -ib_alloc_mr() since kernel 4.3 - -Linux-commit: d9f272c523db47a56a64942eb6f25361c400de66 - -Signed-off-by: Li Dongyang -Change-Id: I53f4e7c395c83d731aaa342f308f878b07b54d61 -Reviewed-on: http://review.whamcloud.com/19185 -Reviewed-by: Dmitry Eremin -Tested-by: Jenkins -Tested-by: Maloo -Reviewed-by: James Simmons -Reviewed-by: Oleg Drokin ---- - lnet/autoconf/lustre-lnet.m4 | 51 ++---------------------- - lnet/klnds/o2iblnd/o2iblnd.c | 92 +++++++++++++++++++++++++++++++++++++++++++- - 2 files changed, 95 insertions(+), 48 deletions(-) - -diff --git a/lnet/autoconf/lustre-lnet.m4 b/lnet/autoconf/lustre-lnet.m4 -index 2e2adb2..a1498aa 100644 ---- a/lnet/autoconf/lustre-lnet.m4 -+++ b/lnet/autoconf/lustre-lnet.m4 -@@ -395,8 +395,10 @@ AS_IF([test $ENABLEO2IB != "no"], [ - AC_DEFINE(HAVE_IB_CQ_INIT_ATTR, 1, - [struct ib_cq_init_attr is used by ib_create_cq]) - ]) -+]) - -- # 4.3 removed ib_alloc_fast_reg_mr() -+# 4.3 removed ib_alloc_fast_reg_mr() -+AS_IF([test $ENABLEO2IB != "no"], [ - LB_CHECK_COMPILE([if 'ib_alloc_fast_reg_mr' exists], - ib_alloc_fast_reg_mr, [ - #ifdef HAVE_COMPAT_RDMA -@@ -415,52 +417,7 @@ AS_IF([test $ENABLEO2IB != "no"], [ - AC_DEFINE(HAVE_IB_ALLOC_FAST_REG_MR, 1, - [ib_alloc_fast_reg_mr is defined]) - ]) -- -- # In v4.4 Linux kernel, -- # commit e622f2f4ad2142d2a613a57fb85f8cf737935ef5 -- # split up struct ib_send_wr so that all non-trivial verbs -- # use their own structure which embedds struct ib_send_wr. -- LB_CHECK_COMPILE([if 'struct ib_rdma_wr' is defined], -- ib_rdma_wr, [ -- #ifdef HAVE_COMPAT_RDMA -- #undef PACKAGE_NAME -- #undef PACKAGE_TARNAME -- #undef PACKAGE_VERSION -- #undef PACKAGE_STRING -- #undef PACKAGE_BUGREPORT -- #undef PACKAGE_URL -- #include -- #endif -- #include -- ],[ -- struct ib_rdma_wr *wr __attribute__ ((unused)); -- -- wr = rdma_wr(NULL); -- ],[ -- AC_DEFINE(HAVE_IB_RDMA_WR, 1, -- [struct ib_rdma_wr is defined]) -- ]) -- -- # new fast registration API introduced in 4.4 -- LB_CHECK_COMPILE([if 'ib_map_mr_sg' exists], -- ib_map_mr_sg, [ -- #ifdef HAVE_COMPAT_RDMA -- #undef PACKAGE_NAME -- #undef PACKAGE_TARNAME -- #undef PACKAGE_VERSION -- #undef PACKAGE_STRING -- #undef PACKAGE_BUGREPORT -- #undef PACKAGE_URL -- #include -- #endif -- #include -- ],[ -- ib_map_mr_sg(NULL, NULL, 0, 0); -- ],[ -- AC_DEFINE(HAVE_IB_MAP_MR_SG, 1, -- [ib_map_mr_sg exists]) -- ]) --]) # ENABLEO2IB != "no" -+]) - ]) # LN_CONFIG_O2IB - - # -diff --git a/lnet/klnds/o2iblnd/o2iblnd.c b/lnet/klnds/o2iblnd/o2iblnd.c -index 00c4ce2..57f51ca 100644 ---- a/lnet/klnds/o2iblnd/o2iblnd.c -+++ b/lnet/klnds/o2iblnd/o2iblnd.c -@@ -1444,7 +1444,97 @@ kiblnd_create_fmr_pool(kib_fmr_poolset_t *fps, kib_fmr_pool_t **pp_fpo) - .dirty_watermark = fps->fps_flush_trigger, - .flush_function = NULL, - .flush_arg = NULL, -- .cache = !!*kiblnd_tunables.kib_fmr_cache}; -+ .cache = !!fps->fps_cache }; -+ int rc = 0; -+ -+ fpo->fmr.fpo_fmr_pool = ib_create_fmr_pool(fpo->fpo_hdev->ibh_pd, -+ ¶m); -+ if (IS_ERR(fpo->fmr.fpo_fmr_pool)) { -+ rc = PTR_ERR(fpo->fmr.fpo_fmr_pool); -+ if (rc != -ENOSYS) -+ CERROR("Failed to create FMR pool: %d\n", rc); -+ else -+ CERROR("FMRs are not supported\n"); -+ } -+ -+ return rc; -+} -+ -+static int kiblnd_alloc_freg_pool(kib_fmr_poolset_t *fps, kib_fmr_pool_t *fpo) -+{ -+ struct kib_fast_reg_descriptor *frd, *tmp; -+ int i, rc; -+ -+ INIT_LIST_HEAD(&fpo->fast_reg.fpo_pool_list); -+ fpo->fast_reg.fpo_pool_size = 0; -+ for (i = 0; i < fps->fps_pool_size; i++) { -+ LIBCFS_CPT_ALLOC(frd, lnet_cpt_table(), fps->fps_cpt, -+ sizeof(*frd)); -+ if (!frd) { -+ CERROR("Failed to allocate a new fast_reg descriptor\n"); -+ rc = -ENOMEM; -+ goto out; -+ } -+ frd->frd_mr = NULL; -+ -+ frd->frd_frpl = ib_alloc_fast_reg_page_list(fpo->fpo_hdev->ibh_ibdev, -+ LNET_MAX_PAYLOAD/PAGE_SIZE); -+ if (IS_ERR(frd->frd_frpl)) { -+ rc = PTR_ERR(frd->frd_frpl); -+ CERROR("Failed to allocate ib_fast_reg_page_list: %d\n", -+ rc); -+ frd->frd_frpl = NULL; -+ goto out_middle; -+ } -+ -+#ifdef HAVE_IB_ALLOC_FAST_REG_MR -+ frd->frd_mr = ib_alloc_fast_reg_mr(fpo->fpo_hdev->ibh_pd, -+ LNET_MAX_PAYLOAD/PAGE_SIZE); -+#else -+ frd->frd_mr = ib_alloc_mr(fpo->fpo_hdev->ibh_pd, -+ IB_MR_TYPE_MEM_REG, -+ LNET_MAX_PAYLOAD/PAGE_SIZE); -+#endif -+ if (IS_ERR(frd->frd_mr)) { -+ rc = PTR_ERR(frd->frd_mr); -+ CERROR("Failed to allocate ib_fast_reg_mr: %d\n", rc); -+ frd->frd_mr = NULL; -+ goto out_middle; -+ } -+ -+ frd->frd_valid = true; -+ -+ list_add_tail(&frd->frd_list, &fpo->fast_reg.fpo_pool_list); -+ fpo->fast_reg.fpo_pool_size++; -+ } -+ -+ return 0; -+ -+out_middle: -+ if (frd->frd_mr) -+ ib_dereg_mr(frd->frd_mr); -+ if (frd->frd_frpl) -+ ib_free_fast_reg_page_list(frd->frd_frpl); -+ LIBCFS_FREE(frd, sizeof(*frd)); -+ -+out: -+ list_for_each_entry_safe(frd, tmp, &fpo->fast_reg.fpo_pool_list, -+ frd_list) { -+ list_del(&frd->frd_list); -+ ib_free_fast_reg_page_list(frd->frd_frpl); -+ ib_dereg_mr(frd->frd_mr); -+ LIBCFS_FREE(frd, sizeof(*frd)); -+ } -+ -+ return rc; -+} -+ -+static int -+kiblnd_create_fmr_pool(kib_fmr_poolset_t *fps, kib_fmr_pool_t **pp_fpo) -+{ -+ struct ib_device_attr *dev_attr; -+ kib_dev_t *dev = fps->fps_net->ibn_dev; -+ kib_fmr_pool_t *fpo; - int rc; - - LIBCFS_CPT_ALLOC(fpo, lnet_cpt_table(), fps->fps_cpt, sizeof(*fpo)); --- -2.8.2 - diff --git a/sys-cluster/lustre/files/0009-LU-6215-o2iblnd-port-to-new-fast-reg-API-introduced-.patch b/sys-cluster/lustre/files/0009-LU-6215-o2iblnd-port-to-new-fast-reg-API-introduced-.patch deleted file mode 100644 index b2df9e8..0000000 --- a/sys-cluster/lustre/files/0009-LU-6215-o2iblnd-port-to-new-fast-reg-API-introduced-.patch +++ /dev/null @@ -1,332 +0,0 @@ -From f1b1ef4f8af7751e1fc73b8f4ad2363b48159fa9 Mon Sep 17 00:00:00 2001 -From: Li Dongyang -Date: Wed, 4 May 2016 13:11:15 -0400 -Subject: [PATCH 09/19] LU-6215 o2iblnd: port to new fast reg API introduced in - 4.4 - -Remove the allocation of fastreg page list, as the page -vector is now private to the provider. Just pass tx_frags -to ib_map_mr_sg() and construct ib_reg_wr. -Defer the conversion of tx_frags to tx_pages and only do -it when the new API is not available. - -Linux-commit: 4c67e2bfc8b7121d51434362fa7c2d012f8bcf1b -Linux-commit: 39bfc271bd687be2c8e396e976c0fb9a97963400 - -Signed-off-by: Li Dongyang -Change-Id: I5c62b0370ad6ddcc93102a29343491968e4446d0 -Reviewed-on: http://review.whamcloud.com/19186 -Tested-by: Jenkins -Reviewed-by: James Simmons -Reviewed-by: Dmitry Eremin -Tested-by: Maloo -Reviewed-by: Oleg Drokin ---- - lnet/autoconf/lustre-lnet.m4 | 44 +++++++++++++++++++++++++ - lnet/klnds/o2iblnd/o2iblnd.c | 71 ++++++++++++++++++++++++++++++++++------- - lnet/klnds/o2iblnd/o2iblnd.h | 11 ++++--- - lnet/klnds/o2iblnd/o2iblnd_cb.c | 39 ++++++++++------------ - 4 files changed, 127 insertions(+), 38 deletions(-) - -diff --git a/lnet/autoconf/lustre-lnet.m4 b/lnet/autoconf/lustre-lnet.m4 -index a1498aa..5f90bca 100644 ---- a/lnet/autoconf/lustre-lnet.m4 -+++ b/lnet/autoconf/lustre-lnet.m4 -@@ -418,6 +418,50 @@ AS_IF([test $ENABLEO2IB != "no"], [ - [ib_alloc_fast_reg_mr is defined]) - ]) - ]) -+ -+# 4.4 added network namespace parameter for rdma_create_id() -+AS_IF([test $ENABLEO2IB != "no"], [ -+ LB_CHECK_COMPILE([if 'rdma_create_id' wants five args], -+ rdma_create_id_5args, [ -+ #ifdef HAVE_COMPAT_RDMA -+ #undef PACKAGE_NAME -+ #undef PACKAGE_TARNAME -+ #undef PACKAGE_VERSION -+ #undef PACKAGE_STRING -+ #undef PACKAGE_BUGREPORT -+ #undef PACKAGE_URL -+ #include -+ #endif -+ #include -+ ],[ -+ rdma_create_id(NULL, NULL, NULL, 0, 0); -+ ],[ -+ AC_DEFINE(HAVE_RDMA_CREATE_ID_5ARG, 1, -+ [rdma_create_id wants 5 args]) -+ ]) -+]) -+ -+# new fast registration API introduced in 4.4 -+AS_IF([test $ENABLEO2IB != "no"], [ -+ LB_CHECK_COMPILE([if 'ib_map_mr_sg' exists], -+ ib_map_mr_sg, [ -+ #ifdef HAVE_COMPAT_RDMA -+ #undef PACKAGE_NAME -+ #undef PACKAGE_TARNAME -+ #undef PACKAGE_VERSION -+ #undef PACKAGE_STRING -+ #undef PACKAGE_BUGREPORT -+ #undef PACKAGE_URL -+ #include -+ #endif -+ #include -+ ],[ -+ ib_map_mr_sg(NULL, NULL, 0, 0); -+ ],[ -+ AC_DEFINE(HAVE_IB_MAP_MR_SG, 1, -+ [ib_map_mr_sg exists]) -+ ]) -+]) - ]) # LN_CONFIG_O2IB - - # -diff --git a/lnet/klnds/o2iblnd/o2iblnd.c b/lnet/klnds/o2iblnd/o2iblnd.c -index 57f51ca..1262268 100644 ---- a/lnet/klnds/o2iblnd/o2iblnd.c -+++ b/lnet/klnds/o2iblnd/o2iblnd.c -@@ -1394,8 +1394,27 @@ kiblnd_destroy_fmr_pool(kib_fmr_pool_t *pool) - { - LASSERT (pool->fpo_map_count == 0); - -- if (pool->fpo_fmr_pool != NULL) -- ib_destroy_fmr_pool(pool->fpo_fmr_pool); -+ if (fpo->fpo_is_fmr) { -+ if (fpo->fmr.fpo_fmr_pool) -+ ib_destroy_fmr_pool(fpo->fmr.fpo_fmr_pool); -+ } else { -+ struct kib_fast_reg_descriptor *frd, *tmp; -+ int i = 0; -+ -+ list_for_each_entry_safe(frd, tmp, &fpo->fast_reg.fpo_pool_list, -+ frd_list) { -+ list_del(&frd->frd_list); -+#ifndef HAVE_IB_MAP_MR_SG -+ ib_free_fast_reg_page_list(frd->frd_frpl); -+#endif -+ ib_dereg_mr(frd->frd_mr); -+ LIBCFS_FREE(frd, sizeof(*frd)); -+ i++; -+ } -+ if (i < fpo->fast_reg.fpo_pool_size) -+ CERROR("FastReg pool still has %d regions registered\n", -+ fpo->fast_reg.fpo_pool_size - i); -+ } - - if (pool->fpo_hdev != NULL) - kiblnd_hdev_decref(pool->fpo_hdev); -@@ -1477,6 +1496,7 @@ static int kiblnd_alloc_freg_pool(kib_fmr_poolset_t *fps, kib_fmr_pool_t *fpo) - } - frd->frd_mr = NULL; - -+#ifndef HAVE_IB_MAP_MR_SG - frd->frd_frpl = ib_alloc_fast_reg_page_list(fpo->fpo_hdev->ibh_ibdev, - LNET_MAX_PAYLOAD/PAGE_SIZE); - if (IS_ERR(frd->frd_frpl)) { -@@ -1486,6 +1506,7 @@ static int kiblnd_alloc_freg_pool(kib_fmr_poolset_t *fps, kib_fmr_pool_t *fpo) - frd->frd_frpl = NULL; - goto out_middle; - } -+#endif - - #ifdef HAVE_IB_ALLOC_FAST_REG_MR - frd->frd_mr = ib_alloc_fast_reg_mr(fpo->fpo_hdev->ibh_pd, -@@ -1513,15 +1534,19 @@ static int kiblnd_alloc_freg_pool(kib_fmr_poolset_t *fps, kib_fmr_pool_t *fpo) - out_middle: - if (frd->frd_mr) - ib_dereg_mr(frd->frd_mr); -+#ifndef HAVE_IB_MAP_MR_SG - if (frd->frd_frpl) - ib_free_fast_reg_page_list(frd->frd_frpl); -+#endif - LIBCFS_FREE(frd, sizeof(*frd)); - - out: - list_for_each_entry_safe(frd, tmp, &fpo->fast_reg.fpo_pool_list, - frd_list) { - list_del(&frd->frd_list); -+#ifndef HAVE_IB_MAP_MR_SG - ib_free_fast_reg_page_list(frd->frd_frpl); -+#endif - ib_dereg_mr(frd->frd_mr); - LIBCFS_FREE(frd, sizeof(*frd)); - } -@@ -1625,6 +1650,28 @@ kiblnd_fmr_pool_is_idle(kib_fmr_pool_t *fpo, cfs_time_t now) - return cfs_time_aftereq(now, fpo->fpo_deadline); - } - -+static int -+kiblnd_map_tx_pages(kib_tx_t *tx, kib_rdma_desc_t *rd) -+{ -+ kib_hca_dev_t *hdev; -+ __u64 *pages = tx->tx_pages; -+ int npages; -+ int size; -+ int i; -+ -+ hdev = tx->tx_pool->tpo_hdev; -+ -+ for (i = 0, npages = 0; i < rd->rd_nfrags; i++) { -+ for (size = 0; size < rd->rd_frags[i].rf_nob; -+ size += hdev->ibh_page_size) { -+ pages[npages++] = (rd->rd_frags[i].rf_addr & -+ hdev->ibh_page_mask) + size; -+ } -+ } -+ -+ return npages; -+} -+ - void - kiblnd_fmr_pool_unmap(kib_fmr_t *fmr, int status) - { -@@ -1666,13 +1713,16 @@ kiblnd_fmr_pool_unmap(kib_fmr_t *fmr, int status) - } - - int --kiblnd_fmr_pool_map(kib_fmr_poolset_t *fps, __u64 *pages, int npages, -- __u64 iov, kib_fmr_t *fmr) -+kiblnd_fmr_pool_map(kib_fmr_poolset_t *fps, kib_tx_t *tx, kib_rdma_desc_t *rd, -+ __u32 nob, __u64 iov, kib_fmr_t *fmr) - { -- struct ib_pool_fmr *pfmr; -- kib_fmr_pool_t *fpo; -- __u64 version; -- int rc; -+ kib_fmr_pool_t *fpo; -+ __u64 *pages = tx->tx_pages; -+ __u64 version; -+ bool is_rx = (rd != tx->tx_rd); -+ bool tx_pages_mapped = 0; -+ int npages = 0; -+ int rc; - - again: - spin_lock(&fps->fps_lock); -@@ -1710,7 +1760,7 @@ again: - struct ib_reg_wr *wr; - int n; - #else -- struct ib_rdma_wr *wr; -+ struct ib_send_wr *wr; - struct ib_fast_reg_page_list *frpl; - #endif - struct ib_mr *mr; -@@ -1755,9 +1805,8 @@ again: - - wr = &frd->frd_fastreg_wr; - memset(wr, 0, sizeof(*wr)); -- - wr->wr.opcode = IB_WR_REG_MR; -- wr->wr.wr_id = IBLND_WID_MR; -+ wr->wr.wr_id = IBLND_WID_MR; - wr->wr.num_sge = 0; - wr->wr.send_flags = 0; - wr->mr = mr; -diff --git a/lnet/klnds/o2iblnd/o2iblnd.h b/lnet/klnds/o2iblnd/o2iblnd.h -index 3baa255..60334b7 100644 ---- a/lnet/klnds/o2iblnd/o2iblnd.h -+++ b/lnet/klnds/o2iblnd/o2iblnd.h -@@ -352,12 +352,12 @@ struct ib_rdma_wr { - - struct kib_fast_reg_descriptor { /* For fast registration */ - struct list_head frd_list; -- struct ib_rdma_wr frd_inv_wr; -+ struct ib_send_wr frd_inv_wr; - #ifdef HAVE_IB_MAP_MR_SG - struct ib_reg_wr frd_fastreg_wr; - #else -- struct ib_rdma_wr frd_fastreg_wr; -- struct ib_fast_reg_page_list *frd_frpl; -+ struct ib_send_wr frd_fastreg_wr; -+ struct ib_fast_reg_page_list *frd_frpl; - #endif - struct ib_mr *frd_mr; - bool frd_valid; -@@ -1125,8 +1125,9 @@ void kiblnd_unmap_rx_descs(kib_conn_t *conn); - void kiblnd_pool_free_node(kib_pool_t *pool, struct list_head *node); - struct list_head *kiblnd_pool_alloc_node(kib_poolset_t *ps); - --int kiblnd_fmr_pool_map(kib_fmr_poolset_t *fps, __u64 *pages, -- int npages, __u64 iov, kib_fmr_t *fmr); -+int kiblnd_fmr_pool_map(kib_fmr_poolset_t *fps, kib_tx_t *tx, -+ kib_rdma_desc_t *rd, __u32 nob, __u64 iov, -+ kib_fmr_t *fmr); - void kiblnd_fmr_pool_unmap(kib_fmr_t *fmr, int status); - - int kiblnd_tunables_init(void); -diff --git a/lnet/klnds/o2iblnd/o2iblnd_cb.c b/lnet/klnds/o2iblnd/o2iblnd_cb.c -index d25e45a..e400eb2 100644 ---- a/lnet/klnds/o2iblnd/o2iblnd_cb.c -+++ b/lnet/klnds/o2iblnd/o2iblnd_cb.c -@@ -565,35 +565,22 @@ static int - kiblnd_fmr_map_tx(kib_net_t *net, kib_tx_t *tx, kib_rdma_desc_t *rd, int nob) - { - kib_hca_dev_t *hdev; -- __u64 *pages = tx->tx_pages; - kib_fmr_poolset_t *fps; -- int npages; -- int size; - int cpt; - int rc; -- int i; - - LASSERT(tx->tx_pool != NULL); - LASSERT(tx->tx_pool->tpo_pool.po_owner != NULL); - -- hdev = tx->tx_pool->tpo_hdev; -- -- for (i = 0, npages = 0; i < rd->rd_nfrags; i++) { -- for (size = 0; size < rd->rd_frags[i].rf_nob; -- size += hdev->ibh_page_size) { -- pages[npages ++] = (rd->rd_frags[i].rf_addr & -- hdev->ibh_page_mask) + size; -- } -- } -- -+ hdev = tx->tx_pool->tpo_hdev; - cpt = tx->tx_pool->tpo_pool.po_owner->ps_cpt; - - fps = net->ibn_fmr_ps[cpt]; -- rc = kiblnd_fmr_pool_map(fps, pages, npages, 0, &tx->fmr); -- if (rc != 0) { -- CERROR ("Can't map %d pages: %d\n", npages, rc); -- return rc; -- } -+ rc = kiblnd_fmr_pool_map(fps, tx, rd, nob, 0, &tx->fmr); -+ if (rc != 0) { -+ CERROR("Can't map %u pages: %d\n", nob, rc); -+ return rc; -+ } - - /* If rd is not tx_rd, it's going to get sent to a peer, who will need - * the rkey */ -@@ -853,12 +840,20 @@ __must_hold(&conn->ibc_lock) - - if (frd != NULL) { - if (!frd->frd_valid) { -- wr = &frd->frd_inv_wr.wr; -- wr->next = &frd->frd_fastreg_wr.wr; -+ wrq = &frd->frd_inv_wr; -+#ifdef HAVE_IB_MAP_MR_SG -+ wrq->next = &frd->frd_fastreg_wr.wr; -+ } else { -+ wrq = &frd->frd_fastreg_wr.wr; -+ } -+ frd->frd_fastreg_wr.wr.next = tx->tx_wrq; -+#else -+ wrq->next = &frd->frd_fastreg_wr; - } else { - wr = &frd->frd_fastreg_wr.wr; - } -- frd->frd_fastreg_wr.wr.next = &tx->tx_wrq[0].wr; -+ frd->frd_fastreg_wr.next = tx->tx_wrq; -+#endif - } - - LASSERTF(wrq->wr_id == kiblnd_ptr2wreqid(tx, IBLND_WID_TX), --- -2.8.2 - diff --git a/sys-cluster/lustre/files/0010-LU-6215-o2iblnd-rdma_create_id-takes-extra-parameter.patch b/sys-cluster/lustre/files/0010-LU-6215-o2iblnd-rdma_create_id-takes-extra-parameter.patch deleted file mode 100644 index 5a195bc..0000000 --- a/sys-cluster/lustre/files/0010-LU-6215-o2iblnd-rdma_create_id-takes-extra-parameter.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 2c6365b12588a44c95695bfef2b14f7fa449a8d5 Mon Sep 17 00:00:00 2001 -From: Li Dongyang -Date: Fri, 1 Apr 2016 20:26:46 -0400 -Subject: [PATCH 10/19] LU-6215 o2iblnd: rdma_create_id() takes extra parameter - -4.4 kernel added network namespace parameter to rdma_create_id(). -This patch handles the API change. - -Linux-commit: fa20105e09e97e81aadf02f722c31195e4a75c84 - -Signed-off-by: Li Dongyang -Change-Id: I3f3792e70e91ac3b3d9fefdd58cc9e7e4d1c25c6 -Reviewed-on: http://review.whamcloud.com/18759 -Reviewed-by: James Simmons -Tested-by: Jenkins -Tested-by: Maloo -Reviewed-by: Sebastien Buisson -Reviewed-by: Oleg Drokin ---- - lnet/klnds/o2iblnd/o2iblnd.h | 10 ++++------ - 1 file changed, 4 insertions(+), 6 deletions(-) - -diff --git a/lnet/klnds/o2iblnd/o2iblnd.h b/lnet/klnds/o2iblnd/o2iblnd.h -index 60334b7..e784adf 100644 ---- a/lnet/klnds/o2iblnd/o2iblnd.h -+++ b/lnet/klnds/o2iblnd/o2iblnd.h -@@ -131,12 +131,10 @@ extern kib_tunables_t kiblnd_tunables; - #define IBLND_CREDITS_DEFAULT 8 /* default # of peer credits */ - #define IBLND_CREDITS_MAX ((typeof(((kib_msg_t*) 0)->ibm_credits)) - 1) /* Max # of peer credits */ - --#define IBLND_MSG_QUEUE_SIZE(v) ((v) == IBLND_MSG_VERSION_1 ? \ -- IBLND_MSG_QUEUE_SIZE_V1 : \ -- *kiblnd_tunables.kib_peertxcredits) /* # messages/RDMAs in-flight */ --#define IBLND_CREDITS_HIGHWATER(v) ((v) == IBLND_MSG_VERSION_1 ? \ -- IBLND_CREDIT_HIGHWATER_V1 : \ -- *kiblnd_tunables.kib_peercredits_hiw) /* when eagerly to return credits */ -+/* when eagerly to return credits */ -+#define IBLND_CREDITS_HIGHWATER(t, v) ((v) == IBLND_MSG_VERSION_1 ? \ -+ IBLND_CREDIT_HIGHWATER_V1 : \ -+ t->lnd_peercredits_hiw) - - #ifdef HAVE_RDMA_CREATE_ID_5ARG - # define kiblnd_rdma_create_id(cb, dev, ps, qpt) rdma_create_id(current->nsproxy->net_ns, \ --- -2.8.2 - diff --git a/sys-cluster/lustre/files/0011-LU-6215-llite-remove-obsolete-conditional-code.patch b/sys-cluster/lustre/files/0011-LU-6215-llite-remove-obsolete-conditional-code.patch deleted file mode 100644 index 1b9f266..0000000 --- a/sys-cluster/lustre/files/0011-LU-6215-llite-remove-obsolete-conditional-code.patch +++ /dev/null @@ -1,97 +0,0 @@ -From b63795fa3bfd8002351c002c316c53b9f0660636 Mon Sep 17 00:00:00 2001 -From: Andreas Dilger -Date: Fri, 29 Apr 2016 14:48:52 -0600 -Subject: [PATCH 11/19] LU-6215 llite: remove obsolete conditional code - -Remove conditional flock/aops code that was only for out-of-tree -vendor kernels but is not relevant anymore. - -Linux-commit: 3746e6f93bbf28a25d2d69350ab6bfba02e14654 - -Signed-off-by: Andreas Dilger -Signed-off-by: Greg Kroah-Hartman -Change-Id: If119a2da2bbc30a48d872029bd048ea90a3ebbe5 -Reviewed-on: http://review.whamcloud.com/19890 -Tested-by: Jenkins -Reviewed-by: James Simmons -Reviewed-by: Frank Zago -Reviewed-by: John L. Hammond -Tested-by: Maloo -Reviewed-by: Dmitry Eremin -Reviewed-by: Oleg Drokin ---- - lustre/llite/llite_internal.h | 4 ---- - lustre/llite/llite_lib.c | 8 -------- - lustre/llite/rw26.c | 17 ----------------- - 3 files changed, 29 deletions(-) - -diff --git a/lustre/llite/llite_internal.h b/lustre/llite/llite_internal.h -index 15530dc..adbf9d3 100644 ---- a/lustre/llite/llite_internal.h -+++ b/lustre/llite/llite_internal.h -@@ -813,11 +813,7 @@ struct ll_cl_context *ll_cl_find(struct file *file); - void ll_cl_add(struct file *file, const struct lu_env *env, struct cl_io *io); - void ll_cl_remove(struct file *file, const struct lu_env *env); - --#ifndef MS_HAS_NEW_AOPS - extern const struct address_space_operations ll_aops; --#else --extern const struct address_space_operations_ext ll_aops; --#endif - - /* llite/file.c */ - extern struct file_operations ll_file_operations; -diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c -index cf17367..d1050d4 100644 ---- a/lustre/llite/llite_lib.c -+++ b/lustre/llite/llite_lib.c -@@ -232,14 +232,6 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt, - if (sbi->ll_flags & LL_SBI_USER_XATTR) - data->ocd_connect_flags |= OBD_CONNECT_XATTR; - --#ifdef HAVE_MS_FLOCK_LOCK -- /* force vfs to use lustre handler for flock() calls - bug 10743 */ -- sb->s_flags |= MS_FLOCK_LOCK; --#endif --#ifdef MS_HAS_NEW_AOPS -- sb->s_flags |= MS_HAS_NEW_AOPS; --#endif -- - if (sbi->ll_flags & LL_SBI_FLOCK) - sbi->ll_fop = &ll_file_operations_flock; - else if (sbi->ll_flags & LL_SBI_LOCALFLOCK) -diff --git a/lustre/llite/rw26.c b/lustre/llite/rw26.c -index ee17a73..b362532 100644 ---- a/lustre/llite/rw26.c -+++ b/lustre/llite/rw26.c -@@ -806,7 +806,6 @@ static int ll_migratepage(struct address_space *mapping, - } - #endif - --#ifndef MS_HAS_NEW_AOPS - const struct address_space_operations ll_aops = { - .readpage = ll_readpage, - .direct_IO = ll_direct_IO, -@@ -821,19 +820,3 @@ const struct address_space_operations ll_aops = { - .migratepage = ll_migratepage, - #endif - }; --#else --const struct address_space_operations_ext ll_aops = { -- .orig_aops.readpage = ll_readpage, -- .orig_aops.direct_IO = ll_direct_IO, -- .orig_aops.writepage = ll_writepage, -- .orig_aops.writepages = ll_writepages, -- .orig_aops.set_page_dirty = __set_page_dirty_nobuffers, -- .orig_aops.invalidatepage = ll_invalidatepage, -- .orig_aops.releasepage = ll_releasepage, --#ifdef CONFIG_MIGRATION -- .orig_aops.migratepage = ll_migratepage, --#endif -- .write_begin = ll_write_begin, -- .write_end = ll_write_end --}; --#endif --- -2.8.2 - diff --git a/sys-cluster/lustre/files/0012-LU-6215-lnet-split-struct-ib_send_wr.patch b/sys-cluster/lustre/files/0012-LU-6215-lnet-split-struct-ib_send_wr.patch deleted file mode 100644 index ff28978..0000000 --- a/sys-cluster/lustre/files/0012-LU-6215-lnet-split-struct-ib_send_wr.patch +++ /dev/null @@ -1,169 +0,0 @@ -From d514117bc52fee3e392aa48dc44b3552c01a0981 Mon Sep 17 00:00:00 2001 -From: Dmitry Eremin -Date: Tue, 17 May 2016 09:22:15 -0400 -Subject: [PATCH 12/19] LU-6215 lnet: split struct ib_send_wr - -In v4.4 Linux kernel split up struct ib_send_wr so that all non-trivial -verbs use their own structure which embeds struct ib_send_wr. - -Linux-commit: e622f2f4ad2142d2a613a57fb85f8cf737935ef5 -Change-Id: Iea2599ea57a576a4c061841be47a989aba097cc6 -Signed-off-by: Dmitry Eremin -Reviewed-on: http://review.whamcloud.com/19168 -Reviewed-by: Doug Oucharek -Reviewed-by: James Simmons -Reviewed-by: Li Dongyang -Tested-by: Jenkins -Tested-by: Maloo -Reviewed-by: Oleg Drokin ---- - lnet/autoconf/lustre-lnet.m4 | 31 +++++++++++++++---------------- - lnet/klnds/o2iblnd/o2iblnd.c | 5 +++-- - lnet/klnds/o2iblnd/o2iblnd.h | 6 +++--- - lnet/klnds/o2iblnd/o2iblnd_cb.c | 14 +++----------- - 4 files changed, 24 insertions(+), 32 deletions(-) - -diff --git a/lnet/autoconf/lustre-lnet.m4 b/lnet/autoconf/lustre-lnet.m4 -index 5f90bca..2e2adb2 100644 ---- a/lnet/autoconf/lustre-lnet.m4 -+++ b/lnet/autoconf/lustre-lnet.m4 -@@ -395,10 +395,8 @@ AS_IF([test $ENABLEO2IB != "no"], [ - AC_DEFINE(HAVE_IB_CQ_INIT_ATTR, 1, - [struct ib_cq_init_attr is used by ib_create_cq]) - ]) --]) - --# 4.3 removed ib_alloc_fast_reg_mr() --AS_IF([test $ENABLEO2IB != "no"], [ -+ # 4.3 removed ib_alloc_fast_reg_mr() - LB_CHECK_COMPILE([if 'ib_alloc_fast_reg_mr' exists], - ib_alloc_fast_reg_mr, [ - #ifdef HAVE_COMPAT_RDMA -@@ -417,12 +415,13 @@ AS_IF([test $ENABLEO2IB != "no"], [ - AC_DEFINE(HAVE_IB_ALLOC_FAST_REG_MR, 1, - [ib_alloc_fast_reg_mr is defined]) - ]) --]) - --# 4.4 added network namespace parameter for rdma_create_id() --AS_IF([test $ENABLEO2IB != "no"], [ -- LB_CHECK_COMPILE([if 'rdma_create_id' wants five args], -- rdma_create_id_5args, [ -+ # In v4.4 Linux kernel, -+ # commit e622f2f4ad2142d2a613a57fb85f8cf737935ef5 -+ # split up struct ib_send_wr so that all non-trivial verbs -+ # use their own structure which embedds struct ib_send_wr. -+ LB_CHECK_COMPILE([if 'struct ib_rdma_wr' is defined], -+ ib_rdma_wr, [ - #ifdef HAVE_COMPAT_RDMA - #undef PACKAGE_NAME - #undef PACKAGE_TARNAME -@@ -432,17 +431,17 @@ AS_IF([test $ENABLEO2IB != "no"], [ - #undef PACKAGE_URL - #include - #endif -- #include -+ #include - ],[ -- rdma_create_id(NULL, NULL, NULL, 0, 0); -+ struct ib_rdma_wr *wr __attribute__ ((unused)); -+ -+ wr = rdma_wr(NULL); - ],[ -- AC_DEFINE(HAVE_RDMA_CREATE_ID_5ARG, 1, -- [rdma_create_id wants 5 args]) -+ AC_DEFINE(HAVE_IB_RDMA_WR, 1, -+ [struct ib_rdma_wr is defined]) - ]) --]) - --# new fast registration API introduced in 4.4 --AS_IF([test $ENABLEO2IB != "no"], [ -+ # new fast registration API introduced in 4.4 - LB_CHECK_COMPILE([if 'ib_map_mr_sg' exists], - ib_map_mr_sg, [ - #ifdef HAVE_COMPAT_RDMA -@@ -461,7 +460,7 @@ AS_IF([test $ENABLEO2IB != "no"], [ - AC_DEFINE(HAVE_IB_MAP_MR_SG, 1, - [ib_map_mr_sg exists]) - ]) --]) -+]) # ENABLEO2IB != "no" - ]) # LN_CONFIG_O2IB - - # -diff --git a/lnet/klnds/o2iblnd/o2iblnd.c b/lnet/klnds/o2iblnd/o2iblnd.c -index 1262268..ada1322 100644 ---- a/lnet/klnds/o2iblnd/o2iblnd.c -+++ b/lnet/klnds/o2iblnd/o2iblnd.c -@@ -1760,7 +1760,7 @@ again: - struct ib_reg_wr *wr; - int n; - #else -- struct ib_send_wr *wr; -+ struct ib_rdma_wr *wr; - struct ib_fast_reg_page_list *frpl; - #endif - struct ib_mr *mr; -@@ -1805,8 +1805,9 @@ again: - - wr = &frd->frd_fastreg_wr; - memset(wr, 0, sizeof(*wr)); -+ - wr->wr.opcode = IB_WR_REG_MR; -- wr->wr.wr_id = IBLND_WID_MR; -+ wr->wr.wr_id = IBLND_WID_MR; - wr->wr.num_sge = 0; - wr->wr.send_flags = 0; - wr->mr = mr; -diff --git a/lnet/klnds/o2iblnd/o2iblnd.h b/lnet/klnds/o2iblnd/o2iblnd.h -index e784adf..38e5f14 100644 ---- a/lnet/klnds/o2iblnd/o2iblnd.h -+++ b/lnet/klnds/o2iblnd/o2iblnd.h -@@ -350,12 +350,12 @@ struct ib_rdma_wr { - - struct kib_fast_reg_descriptor { /* For fast registration */ - struct list_head frd_list; -- struct ib_send_wr frd_inv_wr; -+ struct ib_rdma_wr frd_inv_wr; - #ifdef HAVE_IB_MAP_MR_SG - struct ib_reg_wr frd_fastreg_wr; - #else -- struct ib_send_wr frd_fastreg_wr; -- struct ib_fast_reg_page_list *frd_frpl; -+ struct ib_rdma_wr frd_fastreg_wr; -+ struct ib_fast_reg_page_list *frd_frpl; - #endif - struct ib_mr *frd_mr; - bool frd_valid; -diff --git a/lnet/klnds/o2iblnd/o2iblnd_cb.c b/lnet/klnds/o2iblnd/o2iblnd_cb.c -index e400eb2..6541d94 100644 ---- a/lnet/klnds/o2iblnd/o2iblnd_cb.c -+++ b/lnet/klnds/o2iblnd/o2iblnd_cb.c -@@ -840,20 +840,12 @@ __must_hold(&conn->ibc_lock) - - if (frd != NULL) { - if (!frd->frd_valid) { -- wrq = &frd->frd_inv_wr; --#ifdef HAVE_IB_MAP_MR_SG -- wrq->next = &frd->frd_fastreg_wr.wr; -- } else { -- wrq = &frd->frd_fastreg_wr.wr; -- } -- frd->frd_fastreg_wr.wr.next = tx->tx_wrq; --#else -- wrq->next = &frd->frd_fastreg_wr; -+ wr = &frd->frd_inv_wr.wr; -+ wr->next = &frd->frd_fastreg_wr.wr; - } else { - wr = &frd->frd_fastreg_wr.wr; - } -- frd->frd_fastreg_wr.next = tx->tx_wrq; --#endif -+ frd->frd_fastreg_wr.wr.next = &tx->tx_wrq[0].wr; - } - - LASSERTF(wrq->wr_id == kiblnd_ptr2wreqid(tx, IBLND_WID_TX), --- -2.8.2 - diff --git a/sys-cluster/lustre/lustre-2.8.0.ebuild b/sys-cluster/lustre/lustre-2.8.54.ebuild similarity index 61% rename from sys-cluster/lustre/lustre-2.8.0.ebuild rename to sys-cluster/lustre/lustre-2.8.54.ebuild index c56b6b1..57f0f37 100644 --- a/sys-cluster/lustre/lustre-2.8.0.ebuild +++ b/sys-cluster/lustre/lustre-2.8.54.ebuild @@ -40,30 +40,18 @@ DEPEND="${RDEPEND} virtual/linux-sources" REQUIRED_USE=" - modules? ( client ) - modules? ( server )" + client? ( modules ) + server? ( modules )" PATCHES=( - "${FILESDIR}/0001-LU-6215-lprocfs-handle-seq_printf-api-change.patch" - "${FILESDIR}/0002-LU-6215-gss-cache_head-is-now-on-a-hlist-in-4.3-kern.patch" - "${FILESDIR}/0003-LU-6215-llite-handle-locks-API-change-in-4.4-kernels.patch" - "${FILESDIR}/0004-LU-6215-llite-make_request_fn-returns-blk_qc_t-in-ke.patch" - "${FILESDIR}/0005-LU-6215-gss-key-payload.data-is-an-array-in-4.4-kern.patch" - "${FILESDIR}/0006-LU-6215-o2iblnd-rdma_create_id-takes-extra-parameter.patch" - "${FILESDIR}/0007-LU-6215-lnet-split-struct-ib_send_wr.patch" - "${FILESDIR}/0008-LU-6215-o2iblnd-ib_alloc_fast_reg_mr-removed-in-4.3.patch" - "${FILESDIR}/0009-LU-6215-o2iblnd-port-to-new-fast-reg-API-introduced-.patch" - "${FILESDIR}/0010-LU-6215-o2iblnd-rdma_create_id-takes-extra-parameter.patch" - "${FILESDIR}/0011-LU-6215-llite-remove-obsolete-conditional-code.patch" - "${FILESDIR}/0012-LU-6215-lnet-split-struct-ib_send_wr.patch" - "${FILESDIR}/0013-LU-8056-libcfs-Support-for-linux-4.2-kernels.patch" - "${FILESDIR}/0014-LU-8056-o2iblnd-ib_query_device-removed-in-4.5.patch" - "${FILESDIR}/0015-LU-8056-socklnd-NETIF_F_ALL_CSUM-renamed-to-NETIF_F_.patch" - "${FILESDIR}/0016-LU-8056-llite-use-inode_lock-to-access-i_mutex.patch" - "${FILESDIR}/0017-LU-8056-llite-inode_operations-interface-changed-in-.patch" - "${FILESDIR}/0018-LU-8056-llite-POSIX_ACL_XATTR_-ACCESS-DEFAULT-remove.patch" - "${FILESDIR}/0019-LU-8056-lloop-fix-bio_for_each_segment_all-for-newer.patch" "${FILESDIR}/lustre-do-not-include-udef.h.patch" + "${FILESDIR}/0001-LU-8056-libcfs-Support-for-linux-4.2-kernels.patch" + "${FILESDIR}/0002-LU-8056-o2iblnd-ib_query_device-removed-in-4.5.patch" + "${FILESDIR}/0003-LU-8056-socklnd-NETIF_F_ALL_CSUM-renamed-to-NETIF_F_.patch" + "${FILESDIR}/0004-LU-8056-llite-use-inode_lock-to-access-i_mutex.patch" + "${FILESDIR}/0005-LU-8056-llite-inode_operations-interface-changed-in-.patch" + "${FILESDIR}/0006-LU-8056-llite-POSIX_ACL_XATTR_-ACCESS-DEFAULT-remove.patch" + "${FILESDIR}/0007-LU-8056-lloop-fix-bio_for_each_segment_all-for-newer.patch" ) pkg_setup() { diff --git a/sys-cluster/lustre/lustre-9999.ebuild b/sys-cluster/lustre/lustre-9999.ebuild index c56b6b1..5d9301c 100644 --- a/sys-cluster/lustre/lustre-9999.ebuild +++ b/sys-cluster/lustre/lustre-9999.ebuild @@ -40,29 +40,10 @@ DEPEND="${RDEPEND} virtual/linux-sources" REQUIRED_USE=" - modules? ( client ) - modules? ( server )" + client? ( modules ) + server? ( modules )" PATCHES=( - "${FILESDIR}/0001-LU-6215-lprocfs-handle-seq_printf-api-change.patch" - "${FILESDIR}/0002-LU-6215-gss-cache_head-is-now-on-a-hlist-in-4.3-kern.patch" - "${FILESDIR}/0003-LU-6215-llite-handle-locks-API-change-in-4.4-kernels.patch" - "${FILESDIR}/0004-LU-6215-llite-make_request_fn-returns-blk_qc_t-in-ke.patch" - "${FILESDIR}/0005-LU-6215-gss-key-payload.data-is-an-array-in-4.4-kern.patch" - "${FILESDIR}/0006-LU-6215-o2iblnd-rdma_create_id-takes-extra-parameter.patch" - "${FILESDIR}/0007-LU-6215-lnet-split-struct-ib_send_wr.patch" - "${FILESDIR}/0008-LU-6215-o2iblnd-ib_alloc_fast_reg_mr-removed-in-4.3.patch" - "${FILESDIR}/0009-LU-6215-o2iblnd-port-to-new-fast-reg-API-introduced-.patch" - "${FILESDIR}/0010-LU-6215-o2iblnd-rdma_create_id-takes-extra-parameter.patch" - "${FILESDIR}/0011-LU-6215-llite-remove-obsolete-conditional-code.patch" - "${FILESDIR}/0012-LU-6215-lnet-split-struct-ib_send_wr.patch" - "${FILESDIR}/0013-LU-8056-libcfs-Support-for-linux-4.2-kernels.patch" - "${FILESDIR}/0014-LU-8056-o2iblnd-ib_query_device-removed-in-4.5.patch" - "${FILESDIR}/0015-LU-8056-socklnd-NETIF_F_ALL_CSUM-renamed-to-NETIF_F_.patch" - "${FILESDIR}/0016-LU-8056-llite-use-inode_lock-to-access-i_mutex.patch" - "${FILESDIR}/0017-LU-8056-llite-inode_operations-interface-changed-in-.patch" - "${FILESDIR}/0018-LU-8056-llite-POSIX_ACL_XATTR_-ACCESS-DEFAULT-remove.patch" - "${FILESDIR}/0019-LU-8056-lloop-fix-bio_for_each_segment_all-for-newer.patch" "${FILESDIR}/lustre-do-not-include-udef.h.patch" )