Whamcloud - gitweb
fs/lustre-release.git
4 weeks agoLU-18769 lnet: lnetctl memory corruption because of buffer overflow 88/58288/4
Manish Regmi [Mon, 3 Mar 2025 23:22:00 +0000 (15:22 -0800)]
LU-18769 lnet: lnetctl memory corruption because of buffer overflow

Sometimes the the user passed name is larger than the size of
lnet_dlc_intf_descr.intf_name. Add proper validation checks before
strncpy and strcpy so that the buffer does not overflow.

Test-Parameters: trivial
Signed-off-by: Manish Regmi <mregmi@ddn.com>
Change-Id: Ifa867cd60ded64fcefe0a6b948f34e9f542e6e04
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58288
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Chris Horn <chris.horn@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
4 weeks agoLU-18448 llite: read dir on open 69/57069/16
Alexey Lyashkov [Fri, 15 Nov 2024 09:16:04 +0000 (12:16 +0300)]
LU-18448 llite: read dir on open

Let's read some pages at directory start,
a clients needs it probably.

walk over ~100k directories with 150 files on last leaf.

readdir on open enabled.

    real    0m39.977s
    user    0m0.121s
    sys     0m7.161s

readdir on open disabled

    real    1m18.106s
    user    0m0.151s
    sys     0m15.666s

HPE-bug-id: LUS-7695
Signed-off-by: Alexey Lyashkov <alexey.lyashkov@hpe.com>
Change-Id: Iaa674ce0d2e5723b380d7ca09407b27a90bc37f5
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57069
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andrew Perepechko <andrew.perepechko@hpe.com>
Reviewed-by: Alexander Boyko <alexander.boyko@hpe.com>
4 weeks agoLU-18177 lustre: use enum cl_attr_valid instead of unsigned 82/56182/4
Bobi Jam [Wed, 28 Aug 2024 14:38:59 +0000 (22:38 +0800)]
LU-18177 lustre: use enum cl_attr_valid instead of unsigned

The last parameter of coo_attr_update() should be enum cl_attr_valid
instead of __u32/unsigned int

Test-Parameters: trivial
Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: I1e02f1f3621d82d5e279f6d37571ea43929f083e
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56182
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
5 weeks agoLU-18773 osc: initialize index_orig in osc_brw_prep_request 96/58296/2
Jian Yu [Tue, 4 Mar 2025 22:08:41 +0000 (14:08 -0800)]
LU-18773 osc: initialize index_orig in osc_brw_prep_request

This patch initializes index_orig in osc_brw_prep_request() to
fix the following error:

  In function 'osc_brw_prep_request':
  error: 'index_orig' may be used uninitialized in this function
  [-Werror=maybe-uninitialized]
       brwpg->pg->index = index_orig;
       ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~

Change-Id: I97188ea21adfa25950814a04e4f6ffdb9b763712
Test-Parameters: trivial
Signed-off-by: Jian Yu <yujian@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58296
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
5 weeks agoLU-9633 llite: Add kernel doc style for lustre/llite/*.c (Part 7) 79/58279/2
Arshad Hussain [Mon, 3 Mar 2025 07:29:33 +0000 (12:59 +0530)]
LU-9633 llite: Add kernel doc style for lustre/llite/*.c (Part 7)

This patch converts existing functional comments
to kernel doc style comments and removes '/**' for
comments which is not meant to be a kernel-doc comment

./kernel-doc -v -none lustre/llite/symlink.c lustre/llite/rw26.c
llite/symlink.c:244: info: Scanning doc for function ll_getattr_link
llite/rw26.c:36: info: Scanning doc for function ll_invalidate_folio
llite/rw26.c:92: info: Scanning doc for function ll_invalidatepage
llite/rw26.c:719: info: Scanning doc for function ll_prepare_partial_page

Test-Parameters: trivial
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: I9c9fd4c5c1edc426df42165c11c54fdd694bf722
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58279
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Petros Koutoupis <petros.koutoupis@hpe.com>
Reviewed-by: Anjus George <georgea@ornl.gov>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
5 weeks agoLU-9633 llite: Add kernel doc style for lustre/llite/*.c (Part 6) 78/58278/2
Arshad Hussain [Thu, 27 Feb 2025 15:00:54 +0000 (20:30 +0530)]
LU-9633 llite: Add kernel doc style for lustre/llite/*.c (Part 6)

This patch converts existing functional comments
to kernel doc style comments and removes '/**' for
comments which is not meant to be a kernel-doc comment

Tested:
./kernel-doc -v -none lustre/llite/llite_mmap.c lustre/llite/llite_nfs.c
lustre/llite/llite_mmap.c:72: info: Scanning doc for function ll_fault_io_init
lustre/llite/llite_mmap.c:266: info: Scanning doc for function ll_fault0
lustre/llite/llite_mmap.c:536: info: Scanning doc for function ll_vm_open
lustre/llite/llite_mmap.c:560: info: Scanning doc for function ll_vm_close
lustre/llite/llite_nfs.c:234: info: Scanning doc for function ll_encode_fh

Test-Parameters: trivial
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: I31cc93b570db31550aa3bdc919dbd8ce82ce47a4
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58278
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Petros Koutoupis <petros.koutoupis@hpe.com>
Reviewed-by: Anjus George <georgea@ornl.gov>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
5 weeks agoLU-9633 llite: Add kernel doc style for lustre/llite/*.c (Part 5) 77/58277/2
Arshad Hussain [Mon, 3 Mar 2025 07:09:42 +0000 (12:39 +0530)]
LU-9633 llite: Add kernel doc style for lustre/llite/*.c (Part 5)

This patch converts existing functional comments
to kernel doc style comments and removes '/**' for
comments which is not meant to be a kernel-doc comment

Tested:
./kernel-doc -v -none lustre/llite/namei.c lustre/llite/lproc_llite.c
llite/namei.c:101: info: Scanning doc for function ll_iget
llite/namei.c:1299: info: Scanning doc for function ll_atomic_open
llite/lproc_llite.c:83: info: Scanning doc for function ll_stats_pid_write
llite/lproc_llite.c:1355: info: Scanning doc for function default_easize_show
llite/lproc_llite.c:1383: info: Scanning doc for function default_easize_store

Test-Parameters: trivial
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: I8178ca5c2605341f13e307ef5e194f2b4ba8a5bd
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58277
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Petros Koutoupis <petros.koutoupis@hpe.com>
Reviewed-by: Anjus George <georgea@ornl.gov>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
5 weeks agoLU-18760 dkms: race on clobber and create of modules.order 61/58261/3
Shaun Tancheff [Fri, 28 Feb 2025 03:28:52 +0000 (10:28 +0700)]
LU-18760 dkms: race on clobber and create of modules.order

DKMS builds fail occasionally with an error:

cat: /var/lib/dkms/.../build//modules.order: No such file or directory
  MODPOST /var/lib/dkms/.../build/Module.symvers

This appears to be a make bug trying where a path with //
is not understood correctly.

Remove the unnecessary injection of / in the list of SUBDIRS
to be built in when ldiskfs is not enabled.

Test-Parameters: trivial
HPE-bug-id: LUS-12672
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: I6dda02133115076b076e6adf2ebabd10895af643
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58261
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Caleb Carlson <caleb.carlson@hpe.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: Petros Koutoupis <petros.koutoupis@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
5 weeks agoLU-18687 compat: move xarray to lustre_compat 14/58114/4
Timothy Day [Wed, 12 Feb 2025 01:35:30 +0000 (20:35 -0500)]
LU-18687 compat: move xarray to lustre_compat

Migrate the backported xarray code to lustre_compat.
Along the way, create the needed build infrastructure
for lustre_compat. Currently, lustre_compat is built
into libcfs.ko.

Eventually, all of the Lustre/LNet compatability code
will live in lustre_compat - maintaining a clear
separation from the functional code in Lustre and LNet.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I74249d0b5714bee3549bf42a8fede3f279bc37ee
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58114
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
5 weeks agoLU-18691 quota: quota interop check for 64k page clients 61/57961/6
Shaun Tancheff [Fri, 7 Feb 2025 13:21:53 +0000 (20:21 +0700)]
LU-18691 quota: quota interop check for 64k page clients

When hitting the end of available quota a race condition can be hit
which allows an 64k unaligned I/O to be submitted and causes the
node to hang indefinitely.

This happens when a partial write hits quota limits and a subsequent
write is not aligned on 64k page boundary triggering a hang due to
64k vs 4k page aligned transfers.

HPE-bug-id: LUS-12724
Test-Parameters: testlist=sanity-quota clientarch=ppc64le clientdistro=el8.9 serverdistro=el9.4 env=ONLY=88,ONLY_REPEAT=10
Test-Parameters: testlist=sanity-quota clientarch=ppc64le clientdistro=el8.9 serverdistro=el8.9 serverversion=2.15.4 env=ONLY=88,ONLY_REPEAT=10
Test-Parameters: testlist=sanity-quota clientarch=aarch64 clientdistro=el9.3 serverdistro=el8.10 env=ONLY=88,ONLY_REPEAT=10
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: I0f8638062f8b0e57207695c45e1fccbd7492c32d
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57961
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: xinliang <xinliang.liu@linaro.org>
Reviewed-by: Sergey Cheremencev <scherementsev@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
5 weeks agoLU-16565 mdt: Remove ldlm is,set,clear macros 45/57545/2
Timothy Day [Fri, 20 Dec 2024 04:14:11 +0000 (23:14 -0500)]
LU-16565 mdt: Remove ldlm is,set,clear macros

Replaces ldlm_{is,set,clear} macros with the direct flag
names.

The patch has been generated with the coccinelle script in
contrib/cocci/ldlm_flags.cocci.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I866c23748a176e8cc4e391e5111d1133caf2988f
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57545
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
5 weeks agoLU-16565 osc: Remove ldlm is,set,clear macros 44/57544/2
Timothy Day [Fri, 20 Dec 2024 04:13:50 +0000 (23:13 -0500)]
LU-16565 osc: Remove ldlm is,set,clear macros

Replaces ldlm_{is,set,clear} macros with the direct flag
names.

The patch has been generated with the coccinelle script in
contrib/cocci/ldlm_flags.cocci.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I40f627f5dbaa072b4a1e91adbca1c88d727fb84d
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57544
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
5 weeks agoLU-16565 quota: Remove ldlm is,set,clear macros 43/57543/2
Timothy Day [Fri, 20 Dec 2024 04:13:09 +0000 (23:13 -0500)]
LU-16565 quota: Remove ldlm is,set,clear macros

Replaces ldlm_{is,set,clear} macros with the direct flag
names.

The patch has been generated with the coccinelle script in
contrib/cocci/ldlm_flags.cocci.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I364cb11cbbfc00f133e1193204a920233b3a1b37
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57543
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
5 weeks agoLU-16565 target: Remove ldlm is,set,clear macros 42/57542/3
Timothy Day [Fri, 20 Dec 2024 04:12:17 +0000 (23:12 -0500)]
LU-16565 target: Remove ldlm is,set,clear macros

Replaces ldlm_{is,set,clear} macros with the direct flag
names.

The patch has been generated with the coccinelle script in
contrib/cocci/ldlm_flags.cocci.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I63198e3278d9be930c768b64ffdccc9cd1e74a76
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57542
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
5 weeks agoLU-12885 mds: add enums for MDS_OPEN flags (4/4) 12/56812/12
Arshad Hussain [Mon, 28 Oct 2024 04:56:56 +0000 (00:56 -0400)]
LU-12885 mds: add enums for MDS_OPEN flags (4/4)

This patch is fourth of the series of patch that separates
kernel open flags from MDS open flags

This patch adds function ll_kernel_to_mds_open_flags() for
one place convert of kernel flags (fmode) to MDS flags

This patch removes macros O_LOV_DELAY_CREATE_1_8 and
O_LOV_DELAY_CREATE_MASK everywhere as it is was only
required for interop with applications written for Lustre
1.8 clients and not used any more

This patch adds function ll_lov_delay_create_is_set() and
ll_lov_delay_create_clear() to set and remove O_LOV_DELAY_CREATE
flag if found in struct file->fmode

This patch removes remaining fmode to mds_open_flags wherever
it was remaining

Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: Ic125dc0c7fa54888fddf435c117de9d304ea8708
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56812
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
5 weeks agoLU-16796 ptlrpc: Change struct ptlrpc_reply_state to use kref 64/56364/3
Arshad Hussain [Wed, 11 Sep 2024 07:17:19 +0000 (03:17 -0400)]
LU-16796 ptlrpc: Change struct ptlrpc_reply_state to use kref

This patch changes struct ptlrpc_reply_state to use
kref instead of atomic_t

Test-Parameters: trivial
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: I15d4982e709fe420b1fade4108581fbc7669058e
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56364
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
5 weeks agoLU-16796 lfsck: Change lfsck_instance to use refcount_t 95/56195/2
Arshad Hussain [Thu, 29 Aug 2024 09:34:01 +0000 (05:34 -0400)]
LU-16796 lfsck: Change lfsck_instance to use refcount_t

This patch changes struct lfsck_instance to use
refcount_t instead of atomic_t

Test-Parameters: trivial testlist=sanity-lfsck
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: I9bf3337ed7b68dbd44e723bf7c1374a8e3a07eb7
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56195
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Lai Siyao <lai.siyao@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
5 weeks agoLU-16796 ptlrpc: Change struct ptlrpc_request_set to use kref 59/53459/13
Arshad Hussain [Thu, 14 Dec 2023 11:26:11 +0000 (16:56 +0530)]
LU-16796 ptlrpc: Change struct ptlrpc_request_set to use kref

This patch changes struct ptlrpc_request_set to use
kref instead of atomic_t

Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: Icd8dc9d532121b9087455b951a1b7ee922ab532c
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/53459
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Neil Brown <neilb@suse.de>
Reviewed-by: Timothy Day <timday@amazon.com>
5 weeks agoLU-6142 gss: SPDX for GSS 22/57822/3
Timothy Day [Sun, 19 Jan 2025 20:05:13 +0000 (15:05 -0500)]
LU-6142 gss: SPDX for GSS

Convert from verbose license text to SPDX. These files are
largely derived from in-kernel sunrpc GSS code, which derived
it from the Kerberos project.

I've tracked down each file in upstream Linux - and either
applied the correct license to the Lustre version or omitted
the SPDX (as the kernel does) along with an updated full-path
to the Linux kernel file.

Also, add the BSD-3-Clause license text.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I19283cb8d3d625842984b9112014cc58a5a04726
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57822
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18762 lnet: lst SIGSEGV in parser.c 69/58269/2
Frank Sehr [Fri, 28 Feb 2025 21:49:59 +0000 (13:49 -0800)]
LU-18762 lnet: lst SIGSEGV in parser.c

A null pointer problem. Null pointer was passed instead of command
structure array. Built in additional chack.

Test-Parameters: trivial
Signed-off-by: Frank Sehr <fsehr@whamcloud.com>
Change-Id: I7d4e44170aeb8e44c55de681b6b3def781a0b1bd
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58269
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Cyril Bordage <cbordage@whamcloud.com>
Reviewed-by: Manish Regmi <mregmi@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18753 socklnd: remove unused ksocknal_find_peer() 63/58263/2
Timothy Day [Fri, 28 Feb 2025 06:23:27 +0000 (01:23 -0500)]
LU-18753 socklnd: remove unused ksocknal_find_peer()

Remove ksocknal_find_peer() since it is not called
anywhere.

Fixes: 0d816af574b7 ("LU-11300 lnet: remove lnd_query interface.")
Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: Ia9d15882260bf25ebf92d60239f666a6cc97d04a
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58263
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Aurelien Degremont <adegremont@nvidia.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18754 build: explicitly include openssl/rand.h 31/58231/2
Shaun Tancheff [Wed, 26 Feb 2025 12:04:15 +0000 (19:04 +0700)]
LU-18754 build: explicitly include openssl/rand.h

el10 build fails with:
   error: implicit declaration of function 'RAND_bytes'

Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Ieb1b75fbf7029b712addf9222d412d3bfa91e59e
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58231
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Caleb Carlson <caleb.carlson@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18753 mdt: remove mdt_buf code 28/58228/2
Timothy Day [Wed, 26 Feb 2025 05:49:41 +0000 (00:49 -0500)]
LU-18753 mdt: remove mdt_buf code

Remove unused MDT buffer code, including mdt_buf()
and mdt_buf_const().

Fixes: 26b823865997 ("LU-3105 osd: remove capa related stuff from servers")
Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I7c0ffc820e94886902a1dbf09e01d70761f7d8fd
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58228
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Aurelien Degremont <adegremont@nvidia.com>
Reviewed-by: Max Wang <wamax@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18753 obdclass: remove obsolete dt functions 27/58227/3
Timothy Day [Wed, 26 Feb 2025 05:37:57 +0000 (00:37 -0500)]
LU-18753 obdclass: remove obsolete dt functions

Remove:

dt_path_parser()
dt_store_resolve()
dt_store_open()
dt_reg_open()
dt_find_entry()
typedef dt_entry_func_t

These are not called anywhere.

Fixes: 29e98f581ab6 ("LU-2886 obdclass: remove obsoleted md_local_file.c")
Fixes: 29adfde10ff2 ("LU-2886 mdd: create local files using local_storage lib")
Fixes: 90d8e7fd2874 ("Land b_head_interop_disk  on HEAD (20081119_1314)")
Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I5a79f665104c0526db1e328c0e682ce85b592028
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58227
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Aurelien Degremont <adegremont@nvidia.com>
Reviewed-by: Max Wang <wamax@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18753 ptlrpc: remove unused stub functions 26/58226/2
Timothy Day [Wed, 26 Feb 2025 05:14:49 +0000 (00:14 -0500)]
LU-18753 ptlrpc: remove unused stub functions

Remove:

ptlrpc_ping_import_soon()
flavor_copy()
ptlrpc_cleanup_client()
__lustre_swab_buf()

They are not called anywhere.

Fixes: 86b2211e55dc ("LU-290 Reconnects are not throttled")
Fixes: 3565394baa95 ("LU-3289 gss: Add userspace support for GSS null and sk")
Fixes: 3ee0e0908f12 ("LU-5829 ptlrpc: remove unnecessary EXPORT_SYMBOL")
Fixes: 23fad25a5b6b ("b=18631")
Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: Ib45aba0b76d086b0a657bb3fc79d1ec74b1e3302
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58226
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Aurelien Degremont <adegremont@nvidia.com>
Reviewed-by: Max Wang <wamax@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18753 ptlrpc: remove ptlrpcd_add_rqset() 25/58225/2
Timothy Day [Wed, 26 Feb 2025 05:07:50 +0000 (00:07 -0500)]
LU-18753 ptlrpc: remove ptlrpcd_add_rqset()

ptlrpcd_add_rqset() has no callers. Remove it.

Fixes: 03f537c50b76 ("LU-2244 lov: remove unused bits from lov, osc")
Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: Ica55c7559c0244af12bf1b47b350f8aeb0398f03
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58225
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Aurelien Degremont <adegremont@nvidia.com>
Reviewed-by: Max Wang <wamax@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18751 lnet: Segfault in lnetctl fault command 16/58216/2
Frank Sehr [Wed, 26 Feb 2025 00:24:17 +0000 (16:24 -0800)]
LU-18751 lnet: Segfault in lnetctl fault command

"lnetctl fault reset 0" and similar variations cause a segfault. This
is caused by a null pointer that is not checked in the code.

Test-Parameters: trivial
Signed-off-by: Frank Sehr <fsehr@whamcloud.com>
Change-Id: Iec580b19f97c2a189ae8f29444bf3e3cc91d78a0
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58216
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Serguei Smirnov <ssmirnov@whamcloud.com>
Reviewed-by: Manish Regmi <mregmi@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-17778 tests: fix conf-sanity/76d issues 15/58215/2
Andreas Dilger [Sat, 11 Jan 2025 00:16:00 +0000 (17:16 -0700)]
LU-17778 tests: fix conf-sanity/76d issues

There was a race between remounting a client and the MGS parameter
settings being applied, so ensure the parameter setting is rechecked
if it is not correct the first time.

Also, the parameter checking for $MOUNT2 was not necessarily checking
the right instance of the parameter on the client.  Use the instance
name for the mountpoint to ensure this is checked correctly.

Test-Parameters: trivial
Fixes: fa1bff8f6f ("LU-9399 llite: register mountpoint before process llog")
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: Ib6acdc80b880dfc90b0c10406a0f868211433f58
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58215
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Emoly Liu <emoly@whamcloud.com>
Reviewed-by: Nushafreen Palsetia <npalsetia@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18749 socklnd: check page for zerocopy 05/58205/2
Yang Sheng [Mon, 10 Feb 2025 19:35:20 +0000 (03:35 +0800)]
LU-18749 socklnd: check page for zerocopy

We should check the page state to ensure kernel
can handle it in zerocopy case.

Signed-off-by: Yang Sheng <ys@whamcloud.com>
Change-Id: Ib82989bcca9898ecc176ddc0c9a6cd4eafbad89f
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58205
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Frank Sehr <fsehr@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18354 tests: speed up sanity/136 on non-ZFS 99/58199/3
Andreas Dilger [Mon, 24 Feb 2025 20:52:37 +0000 (13:52 -0700)]
LU-18354 tests: speed up sanity/136 on non-ZFS

The previous change to sanity test_136 to improve test reliability
on ZFS servers resulted in the test time increasing by about 8x
(from ~300s to ~2400s).  Only wait for deletion and drop caches on
ZFS MDS nodes, and not on ldiskfs where this is not needed.

Test-Parameters: trivial
Test-Parameters: testlist=sanity env=ONLY=136,SLOW=yes,ONLY_MINUTES=30 fstype=zfs
Test-Parameters: testlist=sanity env=ONLY=136,SLOW=yes,ONLY_MINUTES=30
Fixes: 627cc62369 ("LU-18354 tests: avoid sanity/136 OOM on ZFS servers")
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: Ic5dc79f9b7e6c2df50a97d0447ef3aa9d3c73e1d
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58199
Tested-by: Maloo <maloo@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Olaf Faaland <faaland1@llnl.gov>
Reviewed-by: Timothy Day <timday@amazon.com>
6 weeks agoLU-18744 tests: fix sanity-sec test_27ab 87/58187/3
Sebastien Buisson [Mon, 24 Feb 2025 12:05:54 +0000 (13:05 +0100)]
LU-18744 tests: fix sanity-sec test_27ab

When nodemap is activated in sanity-sec test_27ab, we need to make
sure the default nodemap grants root access, so that clients and
servers can be stopped and restarted.
Also fix an incorrect call to 'lctl nodemap_add_idmap'.

Test-Parameters: trivial
Fixes: e3051ad0f1 ("LU-18109 utils: adding nodemap offset capability")
Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Change-Id: I0adafae67c7637c616c687590bd01ff12f4d6bf2
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58187
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-16518 mdt: fix unused-but-set-variable warnings 84/58184/2
Timothy Day [Mon, 24 Feb 2025 06:38:13 +0000 (01:38 -0500)]
LU-16518 mdt: fix unused-but-set-variable warnings

Remove unused variables in various parts of the MDT code.
This silences the Clang compiler -Wunused-but-set-variable
warning.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I2c42e9ce86ac854a49f8b12f5325ce1f34b8ecc3
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58184
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Max Wang <wamax@amazon.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-16518 target: fix unused-but-set-variable warnings 83/58183/2
Timothy Day [Mon, 24 Feb 2025 06:21:23 +0000 (01:21 -0500)]
LU-16518 target: fix unused-but-set-variable warnings

In tgt_checksum_niobuf(), remove the unused err return code
of cfs_crypto_hash_final() to silence a Clang compiler
warning.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I6dfe664479d4430c4386d2ff50644e41d91a4c28
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58183
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Max Wang <wamax@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
6 weeks agoLU-16518 osc: fix unused-but-set-variable warnings 82/58182/2
Timothy Day [Mon, 24 Feb 2025 06:18:11 +0000 (01:18 -0500)]
LU-16518 osc: fix unused-but-set-variable warnings

When CONFIG_CRC_T10DIF=n and osc_checksum_bulk_t10pi() is
a macro, Clang generates compiler warnings for some of the
arguments - since they are not used elsewhere. Silence this
by creating a proper function.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I502dcf1764602711fcf2cf3553ad6d2f4fed3f14
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58182
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Max Wang <wamax@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
6 weeks agoLU-16518 lnet: fix unused-but-set-variable warnings 81/58181/2
Timothy Day [Mon, 24 Feb 2025 06:12:08 +0000 (01:12 -0500)]
LU-16518 lnet: fix unused-but-set-variable warnings

Remove unused primary_nid variable in lnet_peer_merge_data()
to silence a Clang compiler warning.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: Ib66fd31c7acc08fa66578cd7ab571f278f98afe1
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58181
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Max Wang <wamax@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Serguei Smirnov <ssmirnov@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
6 weeks agoLU-16518 ldlm: fix unused-but-set-variable warnings 80/58180/2
Timothy Day [Mon, 24 Feb 2025 01:53:27 +0000 (20:53 -0500)]
LU-16518 ldlm: fix unused-but-set-variable warnings

In ldlm_flock_completion_ast(), obd* is not being
used. Remove it to silence the Clang compiler warning.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: Idc8d0fd9a351b4bb328a0956eabd2026460cdfe1
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58180
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Max Wang <wamax@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
6 weeks agoLU-16518 obdclass: fix unused-but-set-variable warnings 79/58179/2
Timothy Day [Mon, 24 Feb 2025 01:50:28 +0000 (20:50 -0500)]
LU-16518 obdclass: fix unused-but-set-variable warnings

Remove swab variable in class_config_yaml_output()
that is not being used.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I0db780c98fe34cef91988fc3f8c2ccac9481de2c
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58179
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Max Wang <wamax@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
6 weeks agoLU-16518 llite: fix unused-but-set-variable warnings 78/58178/2
Timothy Day [Mon, 24 Feb 2025 01:47:17 +0000 (20:47 -0500)]
LU-16518 llite: fix unused-but-set-variable warnings

Remove unused variables in llite. Clang does not like
this, so disard them.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: Icb555135fc5ee53c2a7b2819beed4a78fe89b91d
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58178
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Max Wang <wamax@amazon.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-16518 pcc: fix unused-but-set-variable warnings 77/58177/2
Timothy Day [Mon, 24 Feb 2025 01:25:30 +0000 (20:25 -0500)]
LU-16518 pcc: fix unused-but-set-variable warnings

In several places, pcc_file is set but never used.
Clang doesn't like this, so discard this variable.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I7fde9d49bd6309335e6f9083ba588fc86d495b1c
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58177
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Qian Yingjin <qian@ddn.com>
Reviewed-by: Max Wang <wamax@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
6 weeks agoLU-17995 obdclass: remove obdname2fsname() 74/58174/2
Timothy Day [Sun, 23 Feb 2025 18:26:59 +0000 (13:26 -0500)]
LU-17995 obdclass: remove obdname2fsname()

This function is not called anywhere.

Test-Parameters: trivial
Test-Parameters: trivial fstype=zfs
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: Ib6c92787685564e812634c8a466b9edc27ba6977
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58174
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Max Wang <wamax@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-17995 osd-zfs: remove server_name_is_ost() 63/58163/2
Timothy Day [Sat, 22 Feb 2025 17:54:10 +0000 (12:54 -0500)]
LU-17995 osd-zfs: remove server_name_is_ost()

We can determine whether a server name is for an
OST by checking the return code of server_name2index().

Test-Parameters: trivial
Test-Parameters: trivial fstype=zfs
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I2e1c337b9095d333772f87bd2a5253966b54bd45
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58163
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18516 quota: use wait_woken for qsd_op_begin0() 56/58156/3
James Simmons [Sat, 22 Feb 2025 12:56:17 +0000 (07:56 -0500)]
LU-18516 quota: use wait_woken for qsd_op_begin0()

Kernels with debugging enabled report for Lustre quota handling:

do not call blocking ops when !TASK_RUNNING;
? __might_sleep+0x9d/0xc0
  down_read_nested+0x2e/0x4b0
  lquota_disk_read+0x46e/0x800 [lquota]
  qsd_refresh_usage+0x105/0x3d0 [lquota]
  qsd_acquire+0xbe/0x7c0 [lquota]
  qsd_op_begin0+0x5f8/0xc80 [lquota]

This is due to qsd_acquire() performing operations that can sleep while
the kthread is in an idle state. The Linux kernel solution for this
is wait_woken(). Move the function qsd_op_begin0() from using
wait_event_idle_timeout() to wait_woken(). This will resolve the
potential sleeping issues.

Test-Parameters: trivial testlist=sanity-quota
Change-Id: Id2b7a5886869bf0ed3d560e159524dcda841d8b0
Signed-off-by: James Simmons <jsimmons@infradead.org>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58156
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: Sergey Cheremencev <scherementsev@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-8289 utils: fix ll_decode_linkea doc 28/58128/2
Sohei Koyama [Wed, 19 Feb 2025 07:24:42 +0000 (16:24 +0900)]
LU-8289 utils: fix ll_decode_linkea doc

Arguments "#123451" and "#123452" in example were hidden by "\".

Test-Parameters: trivial
Signed-off-by: Sohei Koyama <skoyama@ddn.com>
Change-Id: I059abac920fcc5ecfe03eddc00fef1dd6d89db27
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58128
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Frederick Dilger <fdilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-9633 llite: Add kernel doc style for lustre/llite/*.c (Part 4) 00/58100/2
Arshad Hussain [Mon, 17 Feb 2025 11:11:26 +0000 (16:41 +0530)]
LU-9633 llite: Add kernel doc style for lustre/llite/*.c (Part 4)

This patch converts existing functional comments
to kernel doc style comments and removes '/**' for
comments which is not meant to be a kernel-doc comment

Tested with:
<kernel src path>/scrips/kernel-doc -v -none <file>

Test-Parameters: trivial
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: I1b0eae8e684d96b843cd5da15d6ed2ef944ad9d2
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58100
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Anjus George <georgea@ornl.gov>
Reviewed-by: Petros Koutoupis <petros.koutoupis@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-9633 llite: Add kernel doc style for lustre/llite/*.c (Part 3) 98/58098/2
Arshad Hussain [Mon, 17 Feb 2025 08:15:42 +0000 (13:45 +0530)]
LU-9633 llite: Add kernel doc style for lustre/llite/*.c (Part 3)

This patch converts existing functional comments
to kernel doc style comments and removes '/**' for
comments which is not meant to be a kernel-doc comment

Tested with:
<kernel src path>/scrips/kernel-doc -v -none <file>

Test-Parameters: trivial
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: I360e4d93d161e17172095b638cbf3628791c35a6
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58098
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Anjus George <georgea@ornl.gov>
Reviewed-by: Petros Koutoupis <petros.koutoupis@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18723 hsm: sanity-hsm 500 hung in llapi_hsm_copytool_recv 84/58084/5
Sebastien Buisson [Fri, 14 Feb 2025 09:16:56 +0000 (17:16 +0800)]
LU-18723 hsm: sanity-hsm 500 hung in llapi_hsm_copytool_recv

sanity-hsm hung in test_500 in llapi_hsm_test test100.
The bug can be reproduced by the following test script:
ONLY="411 500" REFORMAT=yes ./sanity-hsm.sh

The reason is that the previous test case 411 does not cleanup
clearly and failed to unregister the HSM agent due to the
permission under the active rbac role and return -EPERM:
mdt_hsm_ct_unregister() {
...
if (!mdt_hsm_is_admin(info))
GOTO(out, rc = -EPERM);
...

This bug can easily be solved by making sure nodemap is always removed
before the copytool is cleaned up.

Test-Parameters: trivial testlist=sanity-hsm
Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Change-Id: I093775eeaf39b4d2671e3a05e41f33a9e1d8ec5e
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58084
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Tested-by: Robert Read <rread@ddn.com>
Reviewed-by: Robert Read <rread@ddn.com>
Reviewed-by: Li Xi <lixi@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18705 pcc: only reset file mapping for valid cached file 99/57999/3
Qian Yingjin [Thu, 6 Feb 2025 12:41:59 +0000 (20:41 +0800)]
LU-18705 pcc: only reset file mapping for valid cached file

It should only reset and revise file mapping for the valid cached
file (@cached == true) in pcc_file_mapping_reset().

Otherwise, it will cause sanity-pcc test_97 panic as follows:
(pcc.c:3077:pcc_vma_file_reset())
ASSERTION( vma->vm_file->f_mapping == inode->i_mapping ) failed:
panic+0x114/0x2f6
lbug_with_loc.cold+0x30/0x69 [libcfs]
pcc_mmap_io_init+0xafe/0xd60 [lustre]
pcc_fault+0x170/0x3d0 [lustre]
ll_fault+0x43/0x9a0 [lustre]
__do_fault+0x3c/0x170
do_fault+0x24b/0x640

Test-Parameters: testlist=sanity-pcc env=ONLY=97,ONLY_REPEAT=50
Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: I7e9cd0cba9d230160c90a32bef452139c23164b3
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57999
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Li Xi <lixi@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
6 weeks agoLU-18750 kernel: update RHEL 9.5 [5.14.0-503.26.1.el9_5] 12/58212/2
Jian Yu [Tue, 25 Feb 2025 19:30:32 +0000 (11:30 -0800)]
LU-18750 kernel: update RHEL 9.5 [5.14.0-503.26.1.el9_5]

Update RHEL 9.5 kernel to 5.14.0-503.26.1.el9_5.

Test-Parameters: trivial fstype=ldiskfs mdtcount=4 mdscount=2 \
  clientdistro=el9.5 serverdistro=el9.4 testlist=sanity

Test-Parameters: trivial fstype=ldiskfs mdtcount=4 mdscount=2 \
  clientdistro=el9.4 serverdistro=el9.5 testlist=sanity

Test-Parameters: optional fstype=ldiskfs mdtcount=4 mdscount=2 \
  clientdistro=el9.5 serverdistro=el9.5 testgroup=full-dne-part-1

Test-Parameters: optional fstype=ldiskfs mdtcount=4 mdscount=2 \
  clientdistro=el9.5 serverdistro=el9.5 testgroup=full-dne-part-2

Test-Parameters: optional fstype=ldiskfs mdtcount=4 mdscount=2 \
  clientdistro=el9.5 serverdistro=el9.5 testgroup=full-dne-part-3

Test-Parameters: optional fstype=zfs mdtcount=4 mdscount=2 \
  clientdistro=el9.5 serverdistro=el9.5 testgroup=full-dne-zfs-part-1

Test-Parameters: optional fstype=zfs mdtcount=4 mdscount=2 \
  clientdistro=el9.5 serverdistro=el9.5 testgroup=full-dne-zfs-part-2

Test-Parameters: optional fstype=zfs mdtcount=4 mdscount=2 \
  clientdistro=el9.5 serverdistro=el9.5 testgroup=full-dne-zfs-part-3

Change-Id: Id381dd6628ad738fa23ddbe3746f42457269595f
Signed-off-by: Jian Yu <yujian@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58212
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Alex Deiter <adeiter@ddn.com>
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18566 lnet: dynamically configure timeouts 14/57514/6
Caleb Carlson [Tue, 18 Jun 2024 19:04:42 +0000 (13:04 -0600)]
LU-18566 lnet: dynamically configure timeouts

Add/use default LND timeouts:
* SOCKNAL_TIMEOUT_DEFAULT = 50,
* IBLND_TIMEOUT_DEFAULT   = 50,
* KFILND_TIMEOUT_DEFAULT  = 125,
* GNILND_TIMEOUT_BASE    = 60

LND timeouts default to these if not set by kernel
module params. Return only this value from the
<lnd>_timeout() functions, dropping the call to
lnet_get_lnd_timeout() which was based on the LTT and
LRC values.

Adds lnd_get_timeout() function to the lnet_lnd API
procedural struct, which returns the LND timeout of
whichever LND initialized the struct.

Use this lnd_get_timeout() function to update
the lnet_lnd tunables upon retrieval, to get current
value from module parameters.

For kfilnd, switch to using kfilnd_timeout() instead of
lnet_get_lnd_timeout(). Define KP_PURGE_LIMIT for KFI
peer purge timeout limits.

For lolnd, there's no timeout function definition, so
added conditional logic to check if the timeout function
is valid and returns a positive integer. Also, LNetGet
using the loopback LND creates the message with both
msg_txni and msg_rxni being NULL, so we check for that
condition.

Use control flow for send/recv to find correct msg NI.
Fix formatting of struct array in nidstrings.c.

Add module param path variables for ksocklnd,
kkfilnd, and kgnilnd. Renames the o2ib_modparam
variable to be more consistent:
o2iblnd_modparam_path.

Remove depency on default lnet_lnd_timeout value
in kgnilnd_timeout() function; use tunable value
instead.

Fallback to lnet_get_lnd_timeout() if tunables timeout
value is 0 (or is unset).

Modifies the 'lnetctl net set' command to allow setting
the LND timeout value via:
'lnetctl net set --net <foo> --lnd-timeout <val>'

Renames yaml_lnet_config_ni_healthv to
yaml_lnet_config_ni_value and adds arguments to broaden
the scope of the function.

Fixes bug when setting both --all and --nid for lnetctl net
set not returning -EINVAL.

Adds sanity tests to sanity-lnet.sh that tests
dynamically configured LND timeouts using values
from LND tunables set and display, and tests
that setting the LND tunable timeout value to zero
ends up defaulting to global lnd_timeout value.

Add timeout get functionality for netlink to kfilnd.

Signed-off-by: Caleb Carlson <caleb.carlson@hpe.com>
HPE-bug-id: LUS-12342
Test-Parameters: testlist="sanity-lnet"
Change-Id: Ic69a7d9d6af4cfed65d07caaf87d8b78238beab0
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57514
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Chris Horn <chris.horn@hpe.com>
Reviewed-by: Serguei Smirnov <ssmirnov@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18538 ldlm: use bitmap for NS flags 86/57386/5
Timothy Day [Thu, 12 Dec 2024 05:40:32 +0000 (00:40 -0500)]
LU-18538 ldlm: use bitmap for NS flags

Use a bitmap for namespace flags in LDLM. Consolidate two
bit fields into a single bitmap. This is more in line with
Linux kernel style and more correct.

Fixes: 70b9dc5 ("LU-17812 ldlm: stack trace log for LDLM error")
Fixes: 3d4b5da ("LU-11518 ldlm: cancel LRU improvement")
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I50dd21d064147db1a93edb2e582db29c26b1c211
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57386
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-16897 tgt: note 'hole' pages 97/53297/13
Patrick Farrell [Thu, 30 Nov 2023 16:54:34 +0000 (11:54 -0500)]
LU-16897 tgt: note 'hole' pages

In order to do sparse reads, we must know which pages
correspond to holes, so we note this when the page is read
from disk.

Note something unusual: We store the hole information in
the lnb, which is a per-IO struct.  This means the hole
information is not present when a page is reused in cache.

So when a region with a hole is first read from disk, the
hole annotation is available for the transfer code, but if
the page cache is in use, this information is not available
on subsequent reads from the same pages.

This can't be avoided because the server does not have any
per-page private information for page cache pages (and ZFS
would not support this).

This isn't too costly for two reasons:
1. We default page cache to off on flash systems
2. Most data is only read once rather than many times in
quick succession

NB: It's not clear how we can efficiently get hole
information from ZFS so this is only for ldiskfs for now.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I54b1b0abeb6889163f36b315292d8b6e760d6f78
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/53297
Tested-by: Maloo <maloo@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Cyril Bordage <cbordage@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18475 build: compatibility updates for kernel 6.12 25/57125/7
Shaun Tancheff [Sat, 21 Dec 2024 11:01:03 +0000 (16:31 +0530)]
LU-18475 build: compatibility updates for kernel 6.12

Linux commit v6.6-rc2-11-gd77008421afd
 groups: Convert group_info.usage to refcount_t
Provide wrappers to inc/dec group_info.usage

Linux v6.12-rc1-3-g5f60d5f6bbc1
 move asm/unaligned.h to linux/unaligned.h
Add a configure test to determine which header to use

Linux v6.11-rc1-51-ga225800f322a
 fs: Convert aops->write_end to take a folio
Linux v6.11-rc1-52-g1da86618bdce
 fs: Convert aops->write_begin to take a folio
Add 'struct folio' for page vs folio signature change.

Linux v6.11-rc4-27-g11068e0b64cb
  fs: remove f_version
f_version is removed, conditionally ignore it.

Linux v6.11-rc6-86-g09022bc196d2
  mm: remove PG_error
PG_error flag and PageError wrappers are removed.

Linux v6.11-rc6-233-g99f86bbda317
  mm: remove PageMlocked
PageMLocked wrappers are removed

Linux v6.11-rc6-225-ge880034cf718
  mm: introduce page_mapcount_is_type()
PAGE_MAPCOUNT_RESERVE is removed and page_mapcount_is_type()
is used instead.

Test-Parameters: trivial
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: I43928749e017c95edcbba9469550c33b00160e16
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57125
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18743 llite: inode_to_wb() needs locking 61/58161/3
James Simmons [Sat, 22 Feb 2025 15:10:24 +0000 (10:10 -0500)]
LU-18743 llite: inode_to_wb() needs locking

When running a kernel with lockdep turned on testing shows the
following error:

WARNING: CPU: 1 PID: 37 at include/linux/backing-dev.h:291 ll_writepages+0x3dd/0x400 [lustre]
Workqueue: writeback wb_workfn (flush-lustre-ffff8f09f4)
RIP: 0010:ll_writepages+0x3dd/0x400 [lustre]
Call Trace: [ 1267.032775] ? show_regs.cold.9+0x22/0x2f
 ? __warn+0xc8/0x150 [ 1267.043623] ? ll_writepages+0x3dd/0x400 [lustre]

This due to inode_to_wb() being called without a lock. We can
pick from 3 types of locks but I went with the inode i_lock.

Change-Id: I7427041d6df102161c06cfbb05b7e26428675225
Signed-off-by: James Simmons <jsimmons@infradead.org>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58161
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Qian Yingjin <qian@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18639 dne: a correct check for dir split 84/57784/11
Alexander Zarochentsev [Tue, 21 Jan 2025 20:10:22 +0000 (20:10 +0000)]
LU-18639 dne: a correct check for dir split

Use the actual dir stripe count while performing
a dir split sanity check in lod_dir_declare_dir_split().

Fix lod_object_lock() to work with a striped dir with
only one stripe correctly.

Improve sanity test_230p by adding a dir split right
after the dir merges.

Also fix a typo in lustre/doc/lfs-migrate.1 .

Fixes: 2e2b16c28b ("LU-11025 dne: support directory restripe")
Fixes: 392f558f40 ("LU-17810 dne: dir restripe without fixed hash flag")
HPE-bug-id: LUS-12701
Test-Parameters: envdefinitions=ONLY=230p fstype=ldiskfs mdtcount=2 mdscount=2 testlist=sanity
Signed-off-by: Alexander Zarochentsev <alexander.zarochentsev@hpe.com>
Change-Id: I8d8501fd09f89d03ccb1ea92a8562326110ecc24
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57784
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Lai Siyao <lai.siyao@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
6 weeks agoLU-18446 ptlrpc: lower CPUs latency during client I/O 39/57039/12
Bruno Faccini [Fri, 15 Nov 2024 09:24:08 +0000 (10:24 +0100)]
LU-18446 ptlrpc: lower CPUs latency during client I/O

Some CPUs with power-management can suffer with high
latency to exit from idle state.
This can have a strong impact on Lustre client perfs.
Use PM-QoS framework to guarantee usage of low-latency
power management mode, for CPUs/Cores known to be
involved to handle RPC replies for Lustre I/Os
completion.

Added PM-QoS configure checks:

PM-QoS framework is present since Kernel v3.2.
DEV_PM_QOS_RESUME_LATENCY was on DEV_PM_QOS_LATENCY before v3.15.

to handle all these cases for older kernels compatibility.

Add 4 tuneables :
  _ 'enable_pmqos' to enable/disable using PM-QoS to
    bump CPUs latency
  _ 'pmqos_latency_max_usec' to allow modifying the max
    latency value to be used
  _ 'pmqos_default_duration_usec' to allow modifying
    the timeout value to unset low latency
  _ 'pmqos_use_stats_for_duration to enable/disable
    using the per-target stats to set low latency timeout

Here is a table summarising the single node fio (randread)
performance :
NJOBS Target perf Original perf perf with patch
1           2.5              1.05            2.56
2           5.24             2.14            5.26
4           10.8             4.36            10.5
8           21.3             8.68            20.9
16          40               16.9            40
32          65.4             32.2            64.1
64          84               56.8            83.4
128         90.8             79.6            89.9
192         91.7             85.2            91.5
256         91.9             87.4            91.8
320         91.8             89.7            91.9

Signed-off-by: Bruno Faccini <bfaccini@nvidia.com>
Change-Id: I784a699f355da413db5029c6c7584ce3ee4ba9e1
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57039
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
7 weeks agoLU-18738 utils: avoid statx() of root of mounted FS 35/58135/2
Olaf Faaland [Tue, 18 Feb 2025 04:46:38 +0000 (20:46 -0800)]
LU-18738 utils: avoid statx() of root of mounted FS

When looking for a specific mounted lustre file system by path, avoid
the stat() or statx() call on lustre file systems whose mountpoints do
not match the given path.

This avoids hangs if the client is disconnected from MDT0 of other
mounted file systems, but the desired file system is reachable.

Signed-off-by: Olaf Faaland <faaland1@llnl.gov>
Change-Id: I1c67214f107ae2afe34d050470155807063bda51
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58135
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Li Xi <lixi@ddn.com>
Reviewed-by: Etienne AUJAMES <eaujames@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
7 weeks agoLU-18727 target: reference transaction early 12/58112/3
Alex Zhuravlev [Tue, 18 Feb 2025 09:14:08 +0000 (12:14 +0300)]
LU-18727 target: reference transaction early

grab a reference to distrubuted transaction handle before putting on
the list, otherwize the concurrent commit thread can find it and
release, thus the original thread will be accessing just freed
structure.

Test-Parameters: testlist=replay-single,replay-dual
Test-Parameters: testlist=replay-single,replay-dual
Test-Parameters: testlist=replay-single,replay-dual
Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I12546b1bce3b3f0fe3c74a99bb589bee39768754
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58112
Reviewed-by: Mikhail Pershin <mpershin@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Lai Siyao <lai.siyao@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
7 weeks agoLU-18392 tests: watch destroys_in_flight recovery_small/160 96/58096/3
Li Dongyang [Mon, 17 Feb 2025 03:37:55 +0000 (14:37 +1100)]
LU-18392 tests: watch destroys_in_flight recovery_small/160

In recovery_small/160, we sleep and check for destroys_in_flight
and make sure the number is low, which indicates destroys are not
blocked.

However there's a 10s timeout, the destroy rpcs could be retried
and before they got put back on error_list again, the destroys_in_flight
could be bumped up, if the test case happen to check destroys_in_flight
during this window the test case could fail.

Use wait_update_cond to watch for the expected drop.

Change-Id: I0b29a90e4c78e80a0b5a522d57ed97db1b698364
Test-Parameters: trivial testlist=recovery-small env=ONLY=160,ONLY_REPEAT=100
Fixes: 27f787daa7 ("LU-15737 ofd: don't block destroys")
Signed-off-by: Li Dongyang <dongyangli@ddn.com>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58096
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
7 weeks agoLU-8066 osc: move complex proc to debugfs 90/58090/2
James Simmons [Fri, 14 Feb 2025 17:50:47 +0000 (12:50 -0500)]
LU-8066 osc: move complex proc to debugfs

Time to pull the trigger and move the complex proc files
to debugfs for the osc layer.

Change-Id: I719362a6885fd9272ad92249e089ed059dc734b5
Signed-off-by: James Simmons <jsimmons@infradead.org>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58090
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
7 weeks agoLU-8066 mdc: move complex proc to debugfs 89/58089/3
James Simmons [Fri, 14 Feb 2025 17:54:42 +0000 (12:54 -0500)]
LU-8066 mdc: move complex proc to debugfs

Time to pull the trigger and move the complex proc files
to debugfs for the mdc layer.

Change-Id: Id4cc8a53ab581ec6a56578d6d23b3541946933e5
Signed-off-by: James Simmons <jsimmons@infradead.org>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58089
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
7 weeks agoLU-8066 ldlm: move debugfs entries to general sysfs 87/58087/3
James Simmons [Fri, 14 Feb 2025 16:05:20 +0000 (11:05 -0500)]
LU-8066 ldlm: move debugfs entries to general sysfs

Any simple debugfs files in the top ldlm directory should be
moved to /sys/fs/lustre/ldlm. This ensures these files will
always be available which is not the case for debugfs.

Change-Id: I851923894d8b6c594056d71a891364d5f54988a1
Signed-off-by: James Simmons <jsimmons@infradead.org>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58087
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
7 weeks agoLU-18721 kernel: update SLES15 SP6 [6.4.0-150600.23.38.1] 80/58080/2
Jian Yu [Fri, 14 Feb 2025 06:00:46 +0000 (22:00 -0800)]
LU-18721 kernel: update SLES15 SP6 [6.4.0-150600.23.38.1]

Update SLES15 SP6 kernel to 6.4.0-150600.23.38.1 for Lustre client.

Test-Parameters: trivial mdtcount=4 mdscount=2 \
  clientdistro=sles15sp6 testlist=sanity

Test-Parameters: optional mdtcount=4 mdscount=2 \
  clientdistro=sles15sp6 testgroup=full-dne-part-1

Test-Parameters: optional mdtcount=4 mdscount=2 \
  clientdistro=sles15sp6 testgroup=full-dne-part-2

Test-Parameters: optional mdtcount=4 mdscount=2 \
  clientdistro=sles15sp6 testgroup=full-dne-part-3

Change-Id: I56a4c37f2316c9180d07b8633db4334f59e09fce
Signed-off-by: Jian Yu <yujian@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58080
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Reviewed-by: Alex Deiter <adeiter@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
7 weeks agoLU-18680 ptlrpc: Improve yaml output for nodemap offset 85/58085/2
Marc Vef [Fri, 14 Feb 2025 11:14:22 +0000 (12:14 +0100)]
LU-18680 ptlrpc: Improve yaml output for nodemap offset

Nodemap offset presents loose values on lctl get_param:
$ lctl get_param -n nodemap.t0.offset
start_uid: 100000
limit_uid: 200000
start_gid: 100000
limit_gid: 200000
start_projid: 100000
limit_projid: 200000

This is technically valid YAML syntax, but not contextually bound as a
unit or to its key "offset". In the future, we want to save/restore
entire nodemap configurations. This means that the key "offset" is
necessary to relate the values to. This can be done via indenting or
more explicitly with {}, as done in this patch to be consistent with
other nodemap properties like ranges or idmap and to not necessarily
rely on indentation:
$ lctl get_param -n nodemap.t0.offset
{
 start_uid: 100000,
 limit_uid: 200000,
 start_gid: 100000,
 limit_gid: 200000,
 start_projid: 100000,
 limit_projid: 200000
}

Note, offsets are always shown even for zero, thus {} is not
shown when no offsets are defined.

Test-Parameters: trivial testlist=sanity-sec env=ONLY=27ab
Signed-off-by: Marc Vef <mvef@whamcloud.com>
Change-Id: I9b9a5411c3adcd39d45f29c8fc1d8c51163ba9b5
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58085
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
Reviewed-by: Aurelien Degremont <adegremont@nvidia.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
7 weeks agoLU-9859 libcfs: migrate hash table to obdclass 45/57945/5
James Simmons [Mon, 3 Feb 2025 17:07:27 +0000 (12:07 -0500)]
LU-9859 libcfs: migrate hash table to obdclass

The lustre specific hash is only used by the Lustre layer so it
doesn't make sense to keep it in libcfs. Move the hash code to
obdclass. Once ldlm resource hashtable moves to rhashtabble this
be server only code.

Test-Parameters: trivial
Change-Id: I676f6a3decf17e0e90cd747ad4bb4c4d16a52a30
Signed-off-by: James Simmons <jsimmons@infradead.org>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57945
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
7 weeks agoLU-18211 build: add e2fsprogs-devel to dkms dependency 34/57934/3
Andreas Dilger [Fri, 31 Jan 2025 07:39:23 +0000 (23:39 -0800)]
LU-18211 build: add e2fsprogs-devel to dkms dependency

The e2fsprogs-devel package is needed to build server packages
with DKMS, so add it to the Requires: list, since RHEL defaults
to XFS these days and it may not always be installed.

Test-Parameters: trivial testgroup=full-dkms
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: I1d5ef22d2caa54821dc55d401beff1f491300c1e
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57934
Reviewed-by: Minh Diep <mdiep@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
7 weeks agoLU-16641 tests: 12b: unlink recently created files 29/57929/5
Sergey Cheremencev [Wed, 29 Jan 2025 22:22:15 +0000 (01:22 +0300)]
LU-16641 tests: 12b: unlink recently created files

It is possible that createmany hasn't created requested
number of files on mdt0. So remove only the number of
successfully created files instead of requested.

Fix error_ignore to avoid default error behaviour.

Fixes: 25896b8b88 ("LU-16641 tests: fix sanity-quota_12b")
Signed-off-by: Sergey Cheremencev <scherementsev@ddn.com>
Change-Id: Ic6d5a02295c73fbed0773408c67a47850dee1f80
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57929
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Artem Blagodarenko <ablagodarenko@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
7 weeks agoLU-18680 ptlrpc: improve nodemap lproc syntaxes 15/57915/7
Aurelien Degremont [Mon, 20 Jan 2025 14:07:59 +0000 (15:07 +0100)]
LU-18680 ptlrpc: improve nodemap lproc syntaxes

- 'idmap='

Fix bad YAML syntax when only gid or projid were set, but no uid mapping.
Now simply a pair of brackets when empty, no more multiple or empty lines.

  idmap=[]

- 'exports='

Now each entry is on a separate line, likewise 'idmap'. While still
YAML compliant, this is easier to read for admins. The final ',' has been
cleared.
Simply a pair of brackets when empty, no more multiple or empty lines.

  exports=[]
  exports=[
   { nid: 172.16.0.1@tcp, uuid: 1d49406a-68eb-4d54-ae08-3587d6a6b078 },
   { nid: 172.16.0.1@tcp, uuid: 48ed3108-de34-11ef-bd15-670a7bd749aa }
  ]

- 'ranges='

Now simply a pair of brackets when empty, no more multiple or empty lines.
Still one entry per line when populated.

  ranges=[]

Change-Id: Ib1711614a825dc3bbb2b8861a61461fdea4e4f4b
Signed-off-by: Aurelien Degremont <adegremont@nvidia.com>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57915
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Marc Vef <mvef@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
7 weeks agoLU-18621 lnet: fix wrong stats for lnet_net_show_dump 85/57885/2
James Simmons [Fri, 24 Jan 2025 15:06:50 +0000 (10:06 -0500)]
LU-18621 lnet: fix wrong stats for lnet_net_show_dump

For the function lnet_get_ni_stats() the im_idx assumes the idx
is relative to all NIs. With lnet_net_show_dump() the idx we
use is realtive to our own NI list so it doesn't always match
the idx lnet_get_ni_stats() expects. This can lead to the wrong
stats being collected when a net_id is set. The only reason we
need an idx for lnet_get_ni_stats() is so the NI can be located
but we already know the NI. Just call lnet_usr_translate_stats()
directly instead of using lnet_get_ni_stats() to figure out the
NI to call lnet_user_translate_stats() internally with.

Test-Parameters: trivial testlist=sanity-lnet
Fixes: 8f8f6e2f36e ("LU-10003 lnet: use Netlink to support old and new NI APIs.")
Change-Id: Ie39e65146c21d976f9a7655eead8c46e9293ee27
Signed-off-by: James Simmons <jsimmons@infradead.org>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57885
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Chris Horn <chris.horn@hpe.com>
Reviewed-by: Cyril Bordage <cbordage@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
7 weeks agoLU-18610 obdclass: add job expired flag 16/57616/7
Shaun Tancheff [Wed, 5 Feb 2025 16:56:47 +0000 (23:56 +0700)]
LU-18610 obdclass: add job expired flag

In lprocfs_job_cleanup() expired jobs are de-referenced before
being removed from the lru to defer holding a spinlock.
This opens a race where a job can be put multiple times
when only a single put on expiry is expected. To avoid a double
de-reference race use a bit flag to avoid the extra de-reference
on jobs in the process of being expired and removed.

HPE-bug-id: LUS-12670
Test-Parameters: testlist=sanity env=ONLY=205,ONLY_REPEAT=100
Fixes: cad59b9b72 ("LU-18351 obdclass: jobstat scaling")
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Ia7dc91cac313919827cc13db971ffb3debe318c2
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57616
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
7 weeks agoLU-18618 ofd: handle filter_fid properly on server 78/57678/31
Bobi Jam [Wed, 8 Jan 2025 12:38:16 +0000 (20:38 +0800)]
LU-18618 ofd: handle filter_fid properly on server

The object's filter_fid could be changed via out_xattr_set(), then the
ofd_object::ofo_ff is out of date, the old ofo_ff layout version could
be a bigger value than that of the merged file, so write/punch upon
this OFD object could be rejected as it prohibit operation with
smaller layout version than that on the disk.

Test-Parameters: testlist=sanity-flr env=ONLY=70a,ONLY_REPEAT=250
Test-Parameters: testlist=sanity-flr env=ONLY=200,ONLY_REPEAT=50
Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: I8bd8c1af4d7806c3d8e4ab9de5af519381d36060
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57678
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Qian Yingjin <qian@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
7 weeks agoLU-18557 ldlm: save ldlm namespace ops for use 32/57432/3
Alex Zhuravlev [Sat, 14 Dec 2024 11:49:51 +0000 (14:49 +0300)]
LU-18557 ldlm: save ldlm namespace ops for use

save ldlm namespace ops for use as __ldlm_resource_putref_final() can
initiate namespace release in a separate thread which in turn will
invalidate the structure pointing to the namespace's ops.

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: If3ddc032b21806046fede09d40a4df78d441138d
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57432
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Alexey Lyashkov <alexey.lyashkov@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Mikhail Pershin <mpershin@whamcloud.com>
7 weeks agoLU-18357 ptlrpc: Add alternate fileset data structure handler 00/57600/11
Marc Vef [Fri, 27 Dec 2024 17:17:16 +0000 (18:17 +0100)]
LU-18357 ptlrpc: Add alternate fileset data structure handler

Handling multiple future alternate filesets requires an in-memory data
structure that is synchronized with the nodemap IAM storage for
filesets. Specifically, it is necessary to properly handle gaps in the
cluster idx subid range that is reserved for filesets which occur when
filesets are deleted.

To easily synchronize the IAM filesets with the in-memory nodemap, an
this patch implements an ordered associative array, rb tree in this
case, which is naturally ordered by a node key - in this case the
global fileset id that can later be directly mapped to the IAM cluster
idx subid range for filesets.

This patch sets the maximum number of alternate filesets to 255 (+1
primary fileset).

This patch only includes the management of the fileset rb tree and
includes all necessary functions. The next patch connects the rb tree
to the IAM and add the API for adding and deleting filesets.

Test-Parameters: trivial
Test-Parameters: testlist=conf-sanity env=ONLY=134
Test-Parameters: testlist=sanity-hsm env=ONLY=411
Test-Parameters: testlist=sanity-quota env=ONLY=75
Test-Parameters: testlist=sanity-sec
Test-Parameters: testlist=sanity-selinux env=ONLY=21
Signed-off-by: Marc Vef <mvef@whamcloud.com>
Change-Id: Ia532894880e5fe65692c699de14e93794c2da483
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57600
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
7 weeks agoLU-18357 ptlrpc: Add fileset ID handling on the nodemap IAM 27/57527/7
Marc Vef [Thu, 19 Dec 2024 15:02:35 +0000 (16:02 +0100)]
LU-18357 ptlrpc: Add fileset ID handling on the nodemap IAM

For handling multiple filesets in the nodemap's IAM cluster idx space,
the cluster idx subids must be associated with a fileset id and vice
versa. This allows to place fileset fragments in the correct subid
range and to assign retrieved fragments to the correct fileset.

This patch adds these calculations for a single fileset with the work
for multiple alternate filesets pending.

Test-Parameters: trivial testlist=sanity-sec
Signed-off-by: Marc Vef <mvef@whamcloud.com>
Change-Id: I7bef5218ebb38d57d0e3aa6aab499111733eaef7
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57527
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
7 weeks agoLU-18357 ptlrpc: Use dynamic memory allocation for filesets 23/57523/6
Marc Vef [Thu, 19 Dec 2024 10:09:24 +0000 (11:09 +0100)]
LU-18357 ptlrpc: Use dynamic memory allocation for filesets

Currently, a nodemap's fileset uses a static-sized array which may be
much larger than needed. This patch adds dynamic memory allocation for
a nodemap's fileset to reduce the future memory footprint when
multiple filesets per nodemap are specified.

Note, when reading fileset fragments from the nodemap IAM, the needed
size is not known yet. Therefore, each fileset is initially
preallocated with "PATH_MAX + 1" and then shrunk when the actual size
is know. This is done on the last step, when a nodemap is set active,
e.g., after reading all IAM idx pages.

The nodemap's fileset is further renamed as future "lctl
nodemap_set_fileset" commands can only modify the primary fileset.

Test-Parameters: trivial testlist=sanity-sec
Signed-off-by: Marc Vef <mvef@whamcloud.com>
Change-Id: I39bd3355c96fcf3938aaa52c8e5ff1eb70617378
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57523
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
7 weeks agoLU-18357 ptlrpc: Use nodemap IAM for persisting filesets 57/56757/26
Marc Vef [Mon, 9 Dec 2024 11:53:09 +0000 (12:53 +0100)]
LU-18357 ptlrpc: Use nodemap IAM for persisting filesets

Currently, two separate commands exist to set a fileset and both
behave differently. "lctl set_param (-P)" works as expected. On the
other hand, "lctl nodemap_set_fileset" updates the fileset only on the
local node and is not persistent. It could also be run from other
server nodes and not only from the MGS. This behavior is inconsistent
with other nodemap commands.

Ideally, we would want to use the nodemap IAM records for persisting
all nodemap properties without relying on secondary mechanisms, such
as the params llog which is currently used for filesets. This patch
adds support for persistence across restarts for "lctl
nodemap_set_fileset" commands. Filesets are split into 28 byte path
fragments which are stored alongside 4 byte fragment metadata into one
nodemap IAM record (which is 32 bytes).

For this, fileset fragments are stored in a "defined" subid range
within the NODEMAP_CLUSTER_IDX type. In anticipation of supporting
multiple filesets, the first fileset subid is reserved for a fileset
header. The subid range is set to support at maximum 256 nodemap
records for fileset fragments.  256 entries support enough fragments
to hold a PATH_MAX fileset in total. Only needed fragments are
inserted into the nodemap IAM.

To support seamless updates from fileset llog to IAM versions, a
nodemap flag was added which allows existing "lctl set_param -P
nodemap.<name>.fileset" to be applied outside the nodemap IAM as long
as no IAM records were set. Filesets from the llog are not migrated to
the IAM but are still compatbiel after an update. "lctl set_param
nodemap.<name>.fileset" is deprecated and uses the IAM once fileset
IAM records are in use.

Sanity-sec "test_27a" was modified to test fileset persistence.

Signed-off-by: Marc Vef <mvef@whamcloud.com>
Change-Id: Ic2e5e8026261867b7f0e90ea4ee2287251c503f7
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56757
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
7 weeks agoLU-18469 ptlrpc: Add flag to deny mounts for nodemaps 96/57096/17
Marc Vef [Mon, 25 Nov 2024 13:08:37 +0000 (14:08 +0100)]
LU-18469 ptlrpc: Add flag to deny mounts for nodemaps

Previously, nodemaps could only be activated and deactived globally.
This patch adds the ability to deny mount attempts for individual
nodemaps.  Existing mounted clients are not evicted when the new flag
is set.

This feature is implemented by adding a new nodemap flag "deny_mount"
and it is stored in the nodemap IAM config record. It is therefore
persistent and the flag is automatically distributed across the
cluster.

Similar to other nodemap flags, the new "deny_mount" flag is set via
"lctl nodemap_modify" and retrieved via "lctl get_param".

Deny mounts for nodemap:
lctl nodemap_modify --name <nm_name> --property deny_mount --value 1

Allow mounts for nodemap (default):
lctl nodemap_modify --name <nm_name> --property deny_mount --value 0

Read nodemap deny_mount flag:
lctl get_param nodemap.<nm>.deny_mount

A new sanity-sec test 74 was added to test this flag.

Signed-off-by: Marc Vef <mvef@whamcloud.com>
Change-Id: Ibf05d3e04768a5702dc6070e2d35c9ac07e731ac
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57096
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
7 weeks agoLU-18535 ptlrpc: do not use kstrndup() 85/57385/7
Alex Zhuravlev [Thu, 12 Dec 2024 05:46:32 +0000 (08:46 +0300)]
LU-18535 ptlrpc: do not use kstrndup()

instead use OBD_ALLOC() + memcpy() so subsequent OBD_FREE() does
correct math to detect memory leaks.

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: Ib6ab1ec865f3d1c9e92328b4ccddef9c1861dee4
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57385
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
7 weeks agoLU-17079 utils: improve mkfs.lustre error messages, do cleanup 23/52223/7
Timothy Day [Fri, 1 Sep 2023 16:28:15 +0000 (16:28 +0000)]
LU-17079 utils: improve mkfs.lustre error messages, do cleanup

Several error message have been changed to output the real error.
This should make it much easier to debug certain types of issues.

Many conditional compilation macros have been cleaned up. Since
this utilies have loadable plugings, we can't know at compile
time which backend storage types are going to be supported.
Plus, these macros add complexity to the code.

Test-Parameters: trivial
Test-Parameters: trivial fstype=zfs
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: Ifcd20cc9fa389a6440b453f6236c41b3a80d92d3
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/52223
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
7 weeks agoLU-18718 llite: cl_file_inode_init() only for regular file 57/58057/5
Bobi Jam [Thu, 13 Feb 2025 07:37:10 +0000 (15:37 +0800)]
LU-18718 llite: cl_file_inode_init() only for regular file

cl_file_inode_init() only applies to regular files, so we'd avoid
LBUG-ing it if the pre-condition is not met.

cl_file_inode_init()) ASSERTION((((inode->i_mode) & 00170000)
                                == 0100000)) failed:
Call Trace:
  dump_stack+0x41/0x60
  lbug_with_loc.cold.8+0x5/0x58 [libcfs]
  cl_file_inode_init+0x216/0x390 [lustre]
  ll_update_inode+0x44f/0x710 [lustre]
  ll_iget+0x228/0x320 [lustre]
  ll_prep_inode+0x3e5/0xa10 [lustre]
  ll_lookup_it_finish.constprop.32+0xce/0x10a0 [lustre]
  ll_lookup_it+0x82f/0x1840 [lustre]
  ll_lookup_nd+0x112/0x1c0 [lustre]
  __lookup_hash+0x75/0xa0
  do_unlinkat+0x156/0x300
  do_syscall_64+0x5b/0x1a0
  entry_SYSCALL_64_after_hwframe+0x66/0xcb

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: I7fef2645ef040cb3c3fd6e4ece062e1c9ab64327
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58057
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Qian Yingjin <qian@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
7 weeks agoLU-6142 mdc: Fix style issues for mdc_request.c 80/56480/4
Arshad Hussain [Sun, 22 Sep 2024 14:15:03 +0000 (10:15 -0400)]
LU-6142 mdc: Fix style issues for mdc_request.c

This patch fixes issues reported by checkpatch
for both files lustre/mdc/mdc_request.c

Test-Parameters: trivial
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: Id1931d5b1b498e0a0971eb2a28c020bc5470da96
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56480
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
7 weeks agoLU-18468 tests: write PAGE_SIZE for sanity-flr/211 22/58122/3
Andreas Dilger [Wed, 19 Feb 2025 00:04:35 +0000 (17:04 -0700)]
LU-18468 tests: write PAGE_SIZE for sanity-flr/211

Do not write smaller than PAGE_SIZE (=64KiB on aarch64/ppc64) when
using "dd oflag=direct" for sanity-flr test_211.  Otherwise, this
will fail on clients/servers that do not support unaligned direct IO.

Test-Parameters: trivial
Test-Parameters: testlist=sanity-flr env=ONLY=211 clientarch=aarch64 clientdistro=el9.3 serverversion=2.14
Fixes: b5db891cad ("LU-18468 llapi: always truncate mirrors on resync")
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: Ia102b99e1303bb24114e58ecc129fe27a198135e
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58122
Tested-by: Maloo <maloo@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
8 weeks agoLU-18716 kernel: update RHEL 9.5 [5.14.0-503.23.2.el9_5] 77/58077/3
Jian Yu [Thu, 13 Feb 2025 20:58:56 +0000 (12:58 -0800)]
LU-18716 kernel: update RHEL 9.5 [5.14.0-503.23.2.el9_5]

Update RHEL 9.5 kernel to 5.14.0-503.23.2.el9_5.

Test-Parameters: trivial fstype=ldiskfs mdtcount=4 mdscount=2 \
  clientdistro=el9.5 serverdistro=el9.4 testlist=sanity

Test-Parameters: trivial fstype=ldiskfs mdtcount=4 mdscount=2 \
  clientdistro=el9.4 serverdistro=el9.5 testlist=sanity

Test-Parameters: optional fstype=ldiskfs mdtcount=4 mdscount=2 \
  clientdistro=el9.5 serverdistro=el9.5 testgroup=full-dne-part-1

Test-Parameters: optional fstype=ldiskfs mdtcount=4 mdscount=2 \
  clientdistro=el9.5 serverdistro=el9.5 testgroup=full-dne-part-2

Test-Parameters: optional fstype=ldiskfs mdtcount=4 mdscount=2 \
  clientdistro=el9.5 serverdistro=el9.5 testgroup=full-dne-part-3

Test-Parameters: optional fstype=zfs mdtcount=4 mdscount=2 \
  clientdistro=el9.5 serverdistro=el9.5 testgroup=full-dne-zfs-part-1

Test-Parameters: optional fstype=zfs mdtcount=4 mdscount=2 \
  clientdistro=el9.5 serverdistro=el9.5 testgroup=full-dne-zfs-part-2

Test-Parameters: optional fstype=zfs mdtcount=4 mdscount=2 \
  clientdistro=el9.5 serverdistro=el9.5 testgroup=full-dne-zfs-part-3

Change-Id: I1ab9751aec09263128c29531bf51370ef9982ba1
Signed-off-by: Jian Yu <yujian@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58077
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Alex Deiter <adeiter@ddn.com>
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
8 weeks agoLU-18717 kernel: update RHEL 8.10 [4.18.0-553.40.1.el8_10] 54/58054/3
Jian Yu [Thu, 13 Feb 2025 00:13:54 +0000 (16:13 -0800)]
LU-18717 kernel: update RHEL 8.10 [4.18.0-553.40.1.el8_10]

Update RHEL 8.10 kernel to 4.18.0-553.40.1.el8_10.

Test-Parameters: trivial fstype=ldiskfs mdtcount=4 mdscount=2 \
  clientdistro=el8.10 serverdistro=el8.10 testlist=sanity

Test-Parameters: optional fstype=zfs mdtcount=4 mdscount=2 \
  env=SANITY_EXCEPT="66 413" \
  clientdistro=el8.10 serverdistro=el8.10 testlist=sanity

Test-Parameters: optional fstype=ldiskfs mdtcount=4 mdscount=2 \
  clientdistro=el8.10 serverdistro=el8.10 testgroup=full-dne-part-1

Test-Parameters: optional fstype=ldiskfs mdtcount=4 mdscount=2 \
  clientdistro=el8.10 serverdistro=el8.10 testgroup=full-dne-part-2

Test-Parameters: optional fstype=ldiskfs mdtcount=4 mdscount=2 \
  clientdistro=el8.10 serverdistro=el8.10 testgroup=full-dne-part-3

Test-Parameters: optional fstype=zfs mdtcount=4 mdscount=2 \
  clientdistro=el8.10 serverdistro=el8.10 testgroup=full-dne-zfs-part-1

Test-Parameters: optional fstype=zfs mdtcount=4 mdscount=2 \
  clientdistro=el8.10 serverdistro=el8.10 testgroup=full-dne-zfs-part-2

Test-Parameters: optional fstype=zfs mdtcount=4 mdscount=2 \
  clientdistro=el8.10 serverdistro=el8.10 testgroup=full-dne-zfs-part-3

Change-Id: I40bc8e5add765103993acbee5d16e04b84696a5f
Signed-off-by: Jian Yu <yujian@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58054
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Alex Deiter <adeiter@ddn.com>
8 weeks agoLU-18687 contrib: move cc-plugins, clarify license 39/57939/2
Timothy Day [Fri, 31 Jan 2025 19:28:12 +0000 (19:28 +0000)]
LU-18687 contrib: move cc-plugins, clarify license

Move cc-plugins from the top-level to contrib. This is
a more sensible location. Also, clarify that it available
under GPLv2 and add Apache-2.0 to LICENSES/dual/ directory.
This mirrors the practices of the Linux kernel.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I462b4ded84e9bd78692a87532da3df4f703db302
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57939
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
8 weeks agoLU-18671 mdc: don't send empty rpc for DoM 83/57883/4
Alexander Boyko [Tue, 14 Jan 2025 12:02:04 +0000 (13:02 +0100)]
LU-18671 mdc: don't send empty rpc for DoM

osc_page_gang_lookup() sends empty rpc to refresh a lock,
bases on cl_io lm_next_rpc_time from a thread storage.
mdc_lock_discard_pages() does not set time, and it is taken from a
osc_thread_info. Sometimes this leads to an empty rpc for a DoM,
outside of DoM component size.

LustreError: lustre-MDT0000-mdc-ffffa0816bceb000: operation ost_read
 to node 192.168.122.55@tcp failed: rc = -116

HPE-bug-id: LUS-12706
Fixes: 564070343ac4 ("LU-14711 osc: Notify server if cache discard takes a long time")
Signed-off-by: Alexander Boyko <alexander.boyko@hpe.com>
Change-Id: I36cdc2c697e2306e792241ecee77b442b24356ce
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57883
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andriy Skulysh <andriy.skulysh@hpe.com>
Reviewed-by: Alexey Lyashkov <alexey.lyashkov@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
8 weeks agoLU-18109 nodemap: fix idmap offset for root 56/57856/6
Sebastien Buisson [Wed, 22 Jan 2025 14:20:11 +0000 (15:20 +0100)]
LU-18109 nodemap: fix idmap offset for root

root must be mapped and offset just like other ids, so that all ids on
the client in the range [0, offset_limit-1] are mapped to the
filesystem id range [offset, offset+offset_limit-1].
This means that as soon as an offset is defined on a nodemap, root is
necessarily mapped:
- if admin=1, root id is offset
- if admin=0, root is squashed then offset.
Similarly:
- if trusted=1, ids are mapped (with any explicit mapping) and offset
- if trusted=0, ids are squashed then offset.

Moreover, add_offset and del_offset operations are only allowed on the
MGS or for a dynamic nodemap.

Finally, enhance sanity-sec test_27ab to test id mappings with offset.

Fixes: e3051ad0f1 ("LU-18109 utils: adding nodemap offset capability")
Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Change-Id: I7a20c59496174d9d1fc040c5b3b43d8dad3447f9
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57856
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Marc Vef <mvef@whamcloud.com>
8 weeks agoLU-18637 obd: add 'network' server mount option 80/57780/10
Sebastien Buisson [Wed, 15 Jan 2025 17:23:46 +0000 (18:23 +0100)]
LU-18637 obd: add 'network' server mount option

Just like the '-o network' client option, we want to control which
LNet network is used for connections established by servers to remote
peers (MGS, other servers).
This controls the following connections:
- osp
- lwp
- mgc
This patch leverages the 'imp_conn_restricted_net' field on the
'struct obd_import'.

Enhance sanity-sec test_31 to exercise this '-o network' option on
server side.

Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Change-Id: I39cbab2645aeda6fe54efb377d1b1d9edfceb89f
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57780
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Cyril Bordage <cbordage@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Mikhail Pershin <mpershin@whamcloud.com>
Reviewed-by: Serguei Smirnov <ssmirnov@whamcloud.com>
8 weeks agoLU-18187 ldlm: use cfs hash extra_bits 90/56290/11
Shaun Tancheff [Sat, 15 Feb 2025 11:01:06 +0000 (18:01 +0700)]
LU-18187 ldlm: use cfs hash extra_bits

BUG: KASAN: vmalloc-out-of-bounds in \\
ldlm_reclaim_lock_cb+0xa46/0xa50 [ptlrpc]

In ldlm_namespace_new() allocation of ns_rs_buckets can be replaced
with extra bits sized to hold struct ldlm_ns_bucket. Then
cfs_hash_bd_extra_get() can be used to access struct ldlm_ns_bucket.

This should resolve the inconsistency that could occur after
cfs_hash_buckets_realloc().

HPE-bug-id: LUS-12508
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: I13af91d400c12891a4bab5c4443dc3d3cbd25da4
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56290
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
8 weeks agoLU-18186 libcfs: avoid kmalloc order > MAX_PAGE_ORDER 15/56215/13
Shaun Tancheff [Sat, 15 Feb 2025 11:17:46 +0000 (18:17 +0700)]
LU-18186 libcfs: avoid kmalloc order > MAX_PAGE_ORDER

    WARNING: CPU: 4 PID: 448333 at mm/page_alloc.c:4663
    __alloc_pages_noprof+0x3a7/0x4e0

libcfs calls memdup_user_nul() which uses kmalloc() which can
trigger the above warning.

Limit these excessive allocations a reasonable minimum.

Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Ide49aa3870cadc43c520f29b0a942c8f9798d053
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56215
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
8 weeks agoLU-18114 nodemap: split "lctl nodemap_*" group into subcommands 07/56207/10
Emoly Liu [Sat, 8 Feb 2025 07:30:01 +0000 (15:30 +0800)]
LU-18114 nodemap: split "lctl nodemap_*" group into subcommands

Split "lctl nodemap_*" command group into subcommands, e.g.
"lctl nodemap_add" to "lctl nodemap add". And "lctl nodemap_*"
commands in sanity-sec.sh are modified to verify this patch.

Also, the old man pages are modified to reflect the new command
format, and the new man page references for lctl-nodemap_xxx.8 are
added to match the old ones.

Test-Parameters: testlist=sanity-sec

Signed-off-by: Emoly Liu <emoly@whamcloud.com>
Change-Id: I165583d95f4a850ce2461c15c56583d64077ef16
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56207
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
Reviewed-by: Marc Vef <mvef@whamcloud.com>
8 weeks agoLU-4315 doc: updating llapi-[g-h] man page style 70/56170/4
Frederick Dilger [Mon, 26 Aug 2024 22:54:36 +0000 (16:54 -0600)]
LU-4315 doc: updating llapi-[g-h] man page style

Updating files to match the new code style for Lustre manual pages as
enforced by 'contrib/scripts/checkpatch-man.pl'.

This also includes other changes like removing < > or { } for singular
required arguments and placing [ ] around optional ones as well as
making all arguments CAPITAL and italicized, literal arguments are
bolded. Lines over 80 characters should be split at the natural line
end rather than the word that goes over the limit as fewer lines will
need to be modified when making changes if each sentence is on it's
own line.

Only using features that appear in groff 1.22.3 as this is the
available version is CentOS 8.

Checked files:
- llapi_get_fsname.3
- llapi_get_fsname_instance.3
- llapi_get_instance.3
- llapi_get_lum_dir.3
- llapi_get_lum_dir_fd.3
- llapi_get_lum_file.3
- llapi_get_lum_file_fd.3
- llapi_getname.3
- llapi_group_lock.3
- llapi_group_unlock.3
- llapi_heat_get.3
- llapi_heat_set.3
- llapi_hsm_action_begin.3
- llapi_hsm_action_end.3
- llapi_hsm_action_get_dfid.3
- llapi_hsm_action_get_fd.3
- llapi_hsm_action_progress.3
- llapi_hsm_copytool_get_fd.3
- llapi_hsm_copytool_recv.3
- llapi_hsm_copytool_register.3
- llapi_hsm_copytool_unregister.3
- llapi_hsm_state_get.3
- llapi_hsm_state_set.3

Test-Parameters: trivial
Signed-off-by: Frederick Dilger <fdilger@whamcloud.com>
Change-Id: I0b503f02f8d5b80a3888bd57676001f7a0bc1dc5
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56170
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
8 weeks agoLU-13582 out: make tx abort verbose 91/53891/6
Alexander Zarochentsev [Fri, 2 Feb 2024 16:39:39 +0000 (16:39 +0000)]
LU-13582 out: make tx abort verbose

A distributed transaction abort and rollback of already
done updates indicates insufficient locking or fs metadata
inconsistency and should be reported to the console at least
as a warning.

Signed-off-by: Alexander Zarochentsev <alexander.zarochentsev@hpe.com>
Change-Id: Id1127d422d19725eeb425e028ff854769cf312d5
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/53891
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andrew Perepechko <andrew.perepechko@hpe.com>
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
8 weeks agoLU-18588 obdclass: keep track of cl_page's bufsize 65/57565/9
Bobi Jam [Fri, 20 Dec 2024 15:01:01 +0000 (23:01 +0800)]
LU-18588 obdclass: keep track of cl_page's bufsize

When a cl_page is allocated, the slab cache size to be used is a
rounding-up value of the cl_object's coh_page_bufsize, while the
object's coh_page_bufsize could change if the layout is changed,
and when the cl_page on the LRU list got shrank, cl_page_free()
would find that its bufsize does not match the current
coh_page_bufsize value.

LustreError: 949:0:(cl_page.c:178:__cl_page_free()) ASSERTION(
cl_page_kmem_size_array[index] == bufsize) failed:
      lbug_with_loc.cold+0x5/0x58 [libcfs]
      __cl_page_free+0x1c2/0x260 [obdclass]
      cl_page_free+0x96/0x4d0 [obdclass]
      cl_batch_put+0x1ac/0x3d0 [obdclass]
      discard_cl_pages+0x99/0x150 [osc]
      osc_lru_shrink+0x34a/0x930 [osc]
      lru_queue_work+0xea/0x220 [osc]
      work_interpreter+0x32/0x170 [ptlrpc]
      ptlrpc_check_set+0x40e/0x1ef0 [ptlrpc]
      ptlrpcd_check+0x3b4/0x5a0 [ptlrpc]
      ptlrpcd+0x1ba/0x4d0 [ptlrpc]

This patch would keep track of the page's bufsize by referring
to cl_page_kmem_size_array if its in the array or reusing
cp_kmem_index to store its bufsize.

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: I433a5601851da3c3d9ec8578005a262f29e979ea
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57565
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Tested-by: Qian Yingjin <qian@ddn.com>
Reviewed-by: Qian Yingjin <qian@ddn.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
8 weeks agoLU-14947 test: recovery_small/26a fix 49/56949/3
Mikhail Pershin [Sat, 9 Nov 2024 13:53:53 +0000 (16:53 +0300)]
LU-14947 test: recovery_small/26a fix

- issue writes to all OSTs prior test to make sure client
  exports are not dropped by server as having no updates
- set rq_sent when request is dropped by fail_check to
  reconnect not immediately but in timely manner

Test-Parameters: testlist=recovery-small env=ONLY=26a
Signed-off-by: Mikhail Pershin <mpershin@whamcloud.com>
Change-Id: Idb219a0453c867903528130669d151bbb6c7bab4
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/56949
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
2 months agoLU-4239 tests: add missing call to test 47/58047/3
Robert Read [Tue, 11 Feb 2025 21:39:30 +0000 (16:39 -0500)]
LU-4239 tests: add missing call to test

Fix issue in test40 in llapi_fid_test.c. The test
creates a file but was not calling the helper
function to do the test.

Signed-off-by: Robert Read <rread@ddn.com>
Test-Parameters: trivial testlist=sanity env=ONLY=154g,ONLY_REPEAT=100
Change-Id: Icd30476d5c2ae986d6971922ea6fc7a2c6859f33
Fixes: 2b10c0bde ("LU-4239 tests: test FID related APIs")
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58047
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
2 months agoLU-9633 llite: Add kernel doc style for lustre/llite/*.c (Part 2) 30/58030/3
Arshad Hussain [Mon, 10 Feb 2025 11:51:19 +0000 (06:51 -0500)]
LU-9633 llite: Add kernel doc style for lustre/llite/*.c (Part 2)

This patch converts existing functional comments
to kernel doc style comments and removes '/**' for
comments which is not meant to be a kernel-doc comment

Tested with:
<kernel src path>/scrips/kernel-doc -v -none <file>

Pass criteria: No errors/warnings reported

Test-Parameters: trivial
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: I1535b80eff527596457346456c19ede97ff970a9
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/58030
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
2 months agoLU-18687 build: consolidate autoconf files 33/57933/3
Timothy Day [Fri, 31 Jan 2025 05:09:34 +0000 (00:09 -0500)]
LU-18687 build: consolidate autoconf files

Maintain all of the autoconf files in the same
top-level directory. This mirrors the practices
of other projects (like ZFS) and makes it easier
to find these files.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I6bfdef9032bf768a63292999a6e9369a85240a2b
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57933
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Max Wang <wamax@amazon.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
2 months agoLU-18485 ptlrpc: use-after-free in batch_send_update_req 16/57116/11
Alex Zhuravlev [Sun, 24 Nov 2024 11:34:45 +0000 (14:34 +0300)]
LU-18485 ptlrpc: use-after-free in batch_send_update_req

if rpc in batch_send_update_req() is async, then the interpreter
(freeing the head) can be called sooner than lprocfs_oh_tally_log2()
(using the head):

  BUG: unable to handle kernel paging request at ffffa35eb3668018
  PGD 100090067 P4D 100090067 PUD 100091067 PMD 14d0c0067 PTE 0
  Oops: 0000 [#1] PREEMPT SMP
  CPU: 1 PID: 10997 Comm: ll_sa_10979 Tainted: G        W  O
  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-1
  RIP: 0010:batch_send_update_req.constprop.1.cold.4+0xb5/0x1d1 [ptlrpc]

Fixes: a20f25d24b5 ("LU-14139 statahead: add stats for batch RPC requests")
Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I65588da9a772e0109bfc133c4057b1effc0e7e5b
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57116
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
2 months agoLU-18689 osp: Unregister proc files before obd cleanup 49/57949/6
Oleg Drokin [Mon, 10 Feb 2025 17:34:44 +0000 (12:34 -0500)]
LU-18689 osp: Unregister proc files before obd cleanup

Don't register the proc files before we are fully done initializing
either.

This fixes problems with proc/sysfs access highlighted by
recovery-small test 57 that take many forms, but
universally have osp in backtrace and either crashes in one of the
attributes or in osp_statfs

BUG: unable to handle kernel NULL pointer dereference at 0000000000000710
IP: [<ffffffff817dfdf8>] down_read+0x28/0x50
RIP: 0010:[<ffffffff817dfdf8>]  [<ffffffff817dfdf8>] down_read+0x28/0x50
Call Trace:
 [<ffffffffa1535378>] active_show+0x28/0x90 [osp]
 [<ffffffffa0397166>] lustre_attr_show+0x16/0x20 [obdclass]
 [<ffffffff812d728c>] sysfs_kf_seq_show+0xcc/0x1e0
 [<ffffffff812d58b3>] kernfs_seq_show+0x23/0x30
 [<ffffffff8126f0b5>] seq_read+0x135/0x470
 [<ffffffff812d643d>] kernfs_fop_read+0x11d/0x190
 [<ffffffff81245839>] vfs_read+0xb9/0x1c0
 [<ffffffff8124676f>] SyS_read+0x7f/0xf0

BUG: unable to handle kernel NULL pointer dereference at 0000000000000158
IP: [<ffffffffa14e85b1>] osp_statfs+0x2a1/0x4e0 [osp]
Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
RIP: 0010:[<ffffffffa14e85b1>]  [<ffffffffa14e85b1>] osp_statfs+0x2a1/0x4e0 [osp]
Call Trace:
 [<ffffffffa03c53f2>] filestotal_show+0x52/0x120 [obdclass]
 [<ffffffffa0378166>] lustre_attr_show+0x16/0x20 [obdclass]
 [<ffffffff812d728c>] sysfs_kf_seq_show+0xcc/0x1e0
 [<ffffffff812d58b3>] kernfs_seq_show+0x23/0x30
 [<ffffffff8126f0b5>] seq_read+0x135/0x470
 [<ffffffff812d643d>] kernfs_fop_read+0x11d/0x190
 [<ffffffff81245839>] vfs_read+0xb9/0x1c0
 [<ffffffff8124676f>] SyS_read+0x7f/0xf0

Signed-off-by: Oleg Drokin <green@whamcloud.com>
Change-Id: Ie0337fcecfa1afe0c6be901bd9dab9cf6847555a
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57949
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
2 months agoLU-18625 llite: use locks_copy_lock API 53/57753/8
Yang Sheng [Tue, 14 Jan 2025 18:22:01 +0000 (02:22 +0800)]
LU-18625 llite: use locks_copy_lock API

The RHEL8.[4-7] operates the lockowner ref-count
in fl_copy_lock, So use locks_copy_lock to expand
the fixing scope. Also skip the test case if work
without fix patch in interop enviroment.

Fixes: fb3c3d2052 ("LU-17692 llite: flock work with lockd")
Signed-off-by: Yang Sheng <ys@whamcloud.com>
Change-Id: I038ab25f51062decf2e7846dfdc98bc81339467a
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57753
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>